我代码中有一个元素长这样:
<input id="invoice_supplier_id" name="invoice[supplier_id]" type="hidden" value="">
我想设置它的值,所以我使用它的 xpath 创建了一个 Web 元素:
val test = driver.findElements(By.xpath("""//*[@id="invoice_supplier_id"]"""))
但现在我看不到设置值的选项...
我代码中有一个元素长这样:
<input id="invoice_supplier_id" name="invoice[supplier_id]" type="hidden" value="">
我想设置它的值,所以我使用它的 xpath 创建了一个 Web 元素:
val test = driver.findElements(By.xpath("""//*[@id="invoice_supplier_id"]"""))
但现在我看不到设置值的选项...
使用findElement
代替findElements
driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).sendKeys("your value");
或者
driver.findElement(By.id("invoice_supplier_id")).sendKeys("value", "your value");
或者使用JavascriptExecutor
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);
或者
(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);
OR (在JavaScript中)
driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).setAttribute("value", "your value")
希望它能对你有所帮助 :)setAttribute
方法。还有其他建议吗? - Narayan Subedidriver.find_element_by_id("invoice_supplier_id").send_keys("your value")
- silent_27driver.findElement(By.id("invoice_supplier_id")).setAttribute("value", "your value");
findElement()
返回一个 WebElement
。WebElement
没有 setAttribute()
方法。 - Nathan正如Shubham Jain所说,这对我有效:driver.findElement(By.id("invoice_supplier_id")).sendKeys("value", "new value");
By.id(“invoice_supplier_id”)
。 - Peter Wippermann