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

时间:2017-04-18 13:56:07

标签: java python angularjs robotframework selenium2library

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

这是我的问题。

有没有办法让页面上显示所有文字?

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

有谁知道吗?或暗示如何让事情顺利进行?

1 个答案:

答案 0 :(得分:1)

您可以通过获取<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的元素。
但是当你在每个生成的webelement上调用Get Text时,它将返回其文本以及所有子文本的文本 - 从而复制数据。这可以在纯xpath / xslt(带text().normalize-space())中完成,但遗憾的是不能通过webdriver / selenium(它总是期望一个节点作为参数)。
答案的目的是为了展示2分钟研究的结果:),并从页面的每个元素上用Get Text实际完成它的人获得任何反馈。