如何使用Javascriptexecutor在没有Id作为定位符的元素中输入文本?

时间:2019-02-13 15:38:40

标签: javascript selenium selenium-webdriver webdriver selenium-chromedriver

我想在不通过SendKeys输入的文本框中输入文本。我继续使用Javascriptexecutor输入文本并成功。现在,在一些字段中没有可供选择的Id可以用作定位器,因此我需要使用Xpath进行定位。我想知道如何在Javascriptexecutor中通过xpath定位元素并将值传递给它。

JavascriptExecutor jse = (JavascriptExecutor)driver
jse.executeScript("document.getElementById('value').value='1611 
Dragons';");

我需要一种可以在其中使用的方法:

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

如果文档/答案以前有记载,请随时引导我。

3 个答案:

答案 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);