问题描述
我想在不通过 SendKeys 输入的文本框中输入文本。 我继续使用 Javascriptexecutor 输入文本并成功。 现在有几个字段没有可以选择作为定位器的 Id,所以我需要使用 Xpath 来定位它们。 我想知道我们如何在 Javascriptexecutor 中通过 xpath 定位元素并将值传递给它。
JavascriptExecutor jse = (JavascriptExecutor)driver
jse.executeScript("document.getElementById('value').value='1611
Dragons';");
我需要一种方法来使用它,例如:
document.getElementByXpath("Xpath Here").value='xyz';");
如果之前在某处记录过,请随时指导我找到文档/答案。
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);
2楼
查看 document.evaluate。
var xpathResult = document.evaluate(
xpathExpression,
contextNode,
namespaceResolver,
resultType,
result
);
3楼
要在通过xpath标识的文本框中输入文本,您可以使用以下表示法:
(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);