我想在不通过SendKeys输入的文本框中输入文本。我继续使用Javascriptexecutor输入文本并成功。现在,在一些字段中没有可供选择的Id可以用作定位器,因此我需要使用Xpath进行定位。我想知道如何在Javascriptexecutor中通过xpath定位元素并将值传递给它。
JavascriptExecutor jse = (JavascriptExecutor)driver
jse.executeScript("document.getElementById('value').value='1611
Dragons';");
我需要一种可以在其中使用的方法:
document.getElementByXpath("Xpath Here").value='xyz';");
如果文档/答案以前有记载,请随时引导我。
答案 0 :(得分:1)
尝试以下代码,它将解决您的问题:
WebElement element = driver.findElement(By.xpath("enter the xpath here"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].value='enter the value here';", element);
答案 1 :(得分:0)
查看document.evaluate。 https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
var xpathResult = document.evaluate(
xpathExpression,
contextNode,
namespaceResolver,
resultType,
result
);
答案 2 :(得分:0)
要在通过 xpath 标识的文本框中输入文本,可以使用以下符号:
(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);