首页
学习
活动
专区
圈层
工具
发布

硒getText
EN

Stack Overflow用户
提问于 2014-05-22 10:23:45
回答 4查看 61.8K关注 0票数 8

我想使用getText()使用By.idBy.cssSelector

我成功地通过getAttribute("value")解决了我的问题,但是我不明白为什么getText()不像我所期望的那样工作,我可能需要它,所以所有的帮助都是值得感激的。

以下是Java代码:

代码语言:javascript
复制
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:

代码语言:javascript
复制
<input id="general_service_name" type="text" value="[reg] title" name="general_service_name" style="float:left;"/>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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")访问它是正确的方法。

票数 13
EN

Stack Overflow用户

发布于 2016-07-27 03:04:26

Java ele.getAttribute("innerHTML");

这可能使文本已经在背景中,但还没有显示在页面上。

票数 4
EN

Stack Overflow用户

发布于 2014-05-22 10:32:37

简单的答案-它是这样设计的。getText()解析标记的内容(即它的innerText),该标记对于输入显然是空的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23804123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档