我正在使用Robotframework来自动化测试,它使用Selenium2库并提供扩展许多库(Java,Python,AngularJS等)的机会。
这是我的问题。
有没有办法让页面上显示所有文字?
我可以通过元素定位器获取任何特定文本,但是目前我需要编写一个函数来获取页面上显示的所有文本。
有谁知道吗?或暗示如何让事情顺利进行?
答案 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
实际完成它的人获得任何反馈。