如何使用selenium设置"value"来输入web元素?

Joe*_*Joe 20 java selenium xpath selenium-chromedriver selenium-webdriver

我的代码中的元素看起来像这样:

<input id="invoice_supplier_id" name="invoice[supplier_id]" type="hidden" value="">
Run Code Online (Sandbox Code Playgroud)

我想设置它的值,所以我用它的xpath创建了一个web元素:

 val test = driver.findElements(By.xpath("""//*[@id="invoice_supplier_id"]"""))
Run Code Online (Sandbox Code Playgroud)

但现在我没有看到设置值的选项......

Shu*_*ain 31

findElement而不是findElements

driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).sendKeys("your value");
Run Code Online (Sandbox Code Playgroud)

要么

WebElement element = driver.findElement(By.xpath("enter the xpath here")); // you can use any locator
 JavascriptExecutor jse = (JavascriptExecutor)driver;
 jse.executeScript("arguments[0].value='enter the value here';", element);
Run Code Online (Sandbox Code Playgroud)

要么

(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);
Run Code Online (Sandbox Code Playgroud)

希望它能帮到你:)

  • 我在这里遇到同样的问题.但是WebElement中没有这样的`setAttribute`方法.还有其他建议吗? (15认同)
  • 将密钥发送到隐藏元素? (2认同)
  • 尝试使用send_keys代替sendKeys (2认同)

Kim*_*ann 6

driver.findElement(By.id("invoice_supplier_id")).setAttribute("value", "your value");
Run Code Online (Sandbox Code Playgroud)

  • `findElement()` 返回一个 `WebElement`。`WebElement` 没有 `setAttribute()` 方法。 (5认同)