如何通过 getAttribute() 或 executeScript() 方法提取输入字段的值?
How to extract the value of an input field through getAttribute() or executeScript() method?
有一个 ID 为条件的输入字段,getText()
和 getAttribute()
不起作用
driver.findElement(By.id("condition")).getText() //is not working..
所以我在控制台中尝试了
document.getElementById("condition").value //return the value.
所以我尝试了
JavascriptExecutor jse = (JavascriptExecutor) driver;
System.out.println(jse.executeScript("document.getElementById(condition).value");
String value = jse.executeScript("document.getElementById(condition).value").toString();
AssertVerify(value, "15");
出现以下错误:
org.openqa.selenium.WebDriverException: JavaScript error (WARNING: The server did not provide any stacktrace information)
如何使用 javascript 获取值并分配给其他变量。
您的代码试用近乎完美。您需要在单引号内传递元素的 id
属性,即 '...'
,如下所示:
String value = ((JavascriptExecutor)driver).executeScript("document.getElementById('condition').value").toString();
更新
由于您仍然无法通过executeScript()
方法检索value,您需要为所需的方法引入WebDriverWait 要点击的元素,您可以使用以下解决方案:
使用getAttribute()
检索文本:
String myText = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("condition"))).getAttribute("value");
使用executeScript
检索文本:
WebElement myElem = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("condition")));
String value = ((JavascriptExecutor)driver).executeScript("document.getElementById('condition').value").toString();
有一个 ID 为条件的输入字段,getText()
和 getAttribute()
不起作用
driver.findElement(By.id("condition")).getText() //is not working..
所以我在控制台中尝试了
document.getElementById("condition").value //return the value.
所以我尝试了
JavascriptExecutor jse = (JavascriptExecutor) driver;
System.out.println(jse.executeScript("document.getElementById(condition).value");
String value = jse.executeScript("document.getElementById(condition).value").toString();
AssertVerify(value, "15");
出现以下错误:
org.openqa.selenium.WebDriverException: JavaScript error (WARNING: The server did not provide any stacktrace information)
如何使用 javascript 获取值并分配给其他变量。
您的代码试用近乎完美。您需要在单引号内传递元素的 id
属性,即 '...'
,如下所示:
String value = ((JavascriptExecutor)driver).executeScript("document.getElementById('condition').value").toString();
更新
由于您仍然无法通过executeScript()
方法检索value,您需要为所需的方法引入WebDriverWait 要点击的元素,您可以使用以下解决方案:
使用
getAttribute()
检索文本:String myText = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("condition"))).getAttribute("value");
使用
executeScript
检索文本:WebElement myElem = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("condition"))); String value = ((JavascriptExecutor)driver).executeScript("document.getElementById('condition').value").toString();