如何使用 Robot Framework 获取网页上显示的所有文本?

How to get all the texts displayed on a Web Page using Robot Framework?

我正在使用 Robotframework 来自动化测试,它使用 Selenium2 库并提供了扩展许多库(Java、Python、AngularJS 等)的机会。

这是我的问题。

有没有办法让一个页面显示所有的文字?

我可以通过元素定位器获取任何特定文本,但目前我需要编写一个函数来获取页面上显示的所有文本。

有谁知道方法吗?或者提示如何让事情继续下去?

您可以通过获取 <body> 标签的文本内容来做到这一点:

${text}=  Get Text  //body
Log       ${text}    # a very long string, with newlines as delimiters b/n the different tags
${text as list}=  Split To Lines  ${text}
Log       ${text as list}   # a list, each member is the different tag's text

另一种(不使用 SE)的方法是使用像 //body//* 这样的定位器跟踪每个元素,生成带有 Get Webelements 的网络元素。
但是当您在每个生成的网络元素上调用 Get Text 时,它将 return 它的文本,加上它所有子元素的文本 - 从而复制数据。这可以在纯 xpath/xslt 中完成(使用 text().normalize-space()),但遗憾的是不能通过 webdriver/selenium(它总是期望一个节点作为参数) .
^ 偏离答案的目的是展示 2 分钟研究的结果 :),并从可能已经完成该研究的人那里获得任何反馈 Get Text 在页面的每个元素上。