我想使用getText()使用By.id或By.cssSelector。
我成功地通过getAttribute("value")解决了我的问题,但是我不明白为什么getText()不像我所期望的那样工作,我可能需要它,所以所有的帮助都是值得感激的。
以下是Java代码:
WebDriverWait wait = new WebDriverWait(driver, 10);
Boolean elementIsPresent = wait.until(ExpectedConditions.textToBePresentInElementValue(By.cssSelector("#general_service_name"),"[reg] general_service_name")); // true
//WebElement general_service_name = driver.findElement(By.cssSelector("#general_service_name"));
WebElement general_service_name = driver.findElement(By.id("general_service_name"));
// Display check
Boolean isDisplayed;
if(general_service_name.isDisplayed()) isDisplayed = new Boolean(true); else isDisplayed = false; //true
String text_empty = general_service_name.getText(); //""
String text_with_value = driver.findElement(By.id("general_service_name")).getAttribute("value"); //"[reg] general_service_name"和HTML:
<input id="general_service_name" type="text" value="[reg] title" name="general_service_name" style="float:left;"/>发布于 2014-05-22 10:31:41
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getText()
getText()传递WebElement的innerText。
您的输入字段没有任何内部文本。文本在您的value-属性中找到,因此通过getAttribute("value")访问它是正确的方法。
发布于 2016-07-27 03:04:26
Java ele.getAttribute("innerHTML");
这可能使文本已经在背景中,但还没有显示在页面上。
发布于 2014-05-22 10:32:37
简单的答案-它是这样设计的。getText()解析标记的内容(即它的innerText),该标记对于输入显然是空的。
https://stackoverflow.com/questions/23804123
复制相似问题