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.
3 Réponses :
Regardez document.evaluate. https://developer.mozilla.org/en-US/ docs / Web / API / Document / évaluer
var xpathResult = document.evaluate( xpathExpression, contextNode, namespaceResolver, resultType, result );
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);
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
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);