网页上的示例程序
http://www.qaautomation.net/?p=263
有以下代码行:
return driver.findElement(By.tagName("body")).getText().contains("qaautomation.net");
getText()文档(http://seleniumhq.github.io/selenium/docs/api/java/)使用术语' innerText'。什么是innerText?
当我运行该程序并获取生成的google页面的源html时,我无法找到“qaautomation.net”#39;在代码中。 Selenium如何从源代码中获取文本?
修改
我现在发布了一个与此查询相关的新问题。
答案 0 :(得分:2)
由于我们专门讨论了selenium webdriver,所以它并不像@Davide所描述的那么简单。
您可以在getElementText
paragraph of the webdriver specification中找到getText()
背后的逻辑描述。从文档中的解释中最重要的一点是,仅getText()
将返回可见元素文本。
当我运行该程序并获取生成的google页面的源html时,我无法找到“qaautomation.net”#39;在代码中
可能有多种原因。一个很常见的问题是"时间问题" - 当页面未完全加载时,您将获得body
的文本。建议的解决方案是使用显式等待(Java WebDriverWait
)。
答案 1 :(得分:2)
InnerHTML是特定标签的内容。
InnerText是特定标签的文本内容。
如果标签p具有以下内容:
<p>Test <b>Bold</b></p>
标签p的innerHTML是Test <b>Bold</b>
标签p的innerText为Test Bold