如何设置 "value" 使用 selenium 输入 web 元素?
How to set "value" to input web element using selenium?
我的代码中有如下所示的元素:
<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);
或(在javascript)
driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).setAttribute("value", "your value")
希望对您有所帮助:)
driver.findElement(By.id("invoice_supplier_id")).setAttribute("value", "your value");
正如 Shubham Jain 所说,这对我有用:driver.findElement(By.id("invoice_supplier_id")).sendKeys("value", "new value");
我的代码中有如下所示的元素:
<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);
或(在javascript)
driver.findElement(By.xpath("//input[@id='invoice_supplier_id'])).setAttribute("value", "your value")
希望对您有所帮助:)
driver.findElement(By.id("invoice_supplier_id")).setAttribute("value", "your value");
正如 Shubham Jain 所说,这对我有用:driver.findElement(By.id("invoice_supplier_id")).sendKeys("value", "new value");