【发布时间】:2014-07-11 07:57:15
【问题描述】:
我想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;"/>
【问题讨论】:
-
getText 只返回可见文本,不返回任何 HTML 元素,也不返回任何隐藏文本。例如,在使用 Java 时,我遇到了一个 BR 标签返回空的问题。我使用
.getAttribute("innerHTML")而不是.getText(),它会返回我正在寻找的内容,包括任何不可见的 HTML 或隐藏的文本。 -
@jsherk:但这不是 this 的问题(?)。
-
@PeterMortensen - 是的,这有点是因为操作说“但我不明白为什么 getText() 不能像我预期的那样工作”,原因是 getText 只返回文本没有 HTML 元素,而 getAttribute 将返回 html 元素以及文本。但我确实以评论而不是答案的形式做出了回应,因为它只是问题的一部分。
标签: java selenium selenium-webdriver gettext getattribute