3
votes

Comment utiliser Javascriptexecutor pour saisir du texte dans un élément qui n'a pas Id comme localisateur?

Je souhaite saisir du texte dans une zone de texte qui ne prend pas l'entrée via SendKeys. J'ai continué à utiliser Javascriptexecutor pour entrer le texte et j'ai réussi. Maintenant, il y a quelques champs dans lesquels il n'y a pas d'identifiant qui peut être sélectionné comme localisateur, je dois donc les localiser avec Xpath. J'aimerais savoir comment pouvons-nous localiser l'élément par xpath dans Javascriptexecutor et lui transmettre les valeurs.

document.getElementByXpath("Xpath Here").value='xyz';");

J'ai besoin d'une approche où je peux l'utiliser quelque chose comme:

XXX

N'hésitez pas à me guider vers un document / réponse s'il a été documenté quelque part auparavant.


0 commentaires

3 Réponses :


0
votes

Regardez document.evaluate. https://developer.mozilla.org/en-US/ docs / Web / API / Document / évaluer

var xpathResult = document.evaluate(
  xpathExpression,
  contextNode,
  namespaceResolver,
  resultType,
  result
);


0 commentaires

0
votes

Pour saisir du texte dans une zone de texte identifiée via un xpath , vous pouvez utiliser la notation suivante:

(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);


1 commentaires

Merci Debanjan pour votre contribution. Malheureusement, cela n'a pas résolu mon problème. Lors de l'exécution, il m'a donné une erreur d'exception inconnue: Runtime.evaluate a jeté une exception: SyntaxError: Fin inattendue de l'entrée



1
votes

Essayez le code suivant, cela résoudrait votre problème:

 WebElement element = driver.findElement(By.xpath("enter the xpath here"));
 JavascriptExecutor jse = (JavascriptExecutor)driver;
 jse.executeScript("arguments[0].value='enter the value here';", element);


0 commentaires