【问题标题】:How to get all the texts displayed on a Web Page using Robot Framework?如何使用 Robot Framework 获取网页上显示的所有文本?
【发布时间】:2017-09-14 09:59:09
【问题描述】:

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

这是我的问题。

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

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

有人知道方法吗?或提示如何进行?

【问题讨论】:

  • 您可以获取整个页面的源代码,然后使用它:robotframework.org/Selenium2Library/…
  • 感谢 Jan Kovařík!我想这样就行了!
  • @JanKovařík 我通过以下方式获得了源代码:${src}= Selenium2Library.Get Source OperatingSystem.Create File ${OUTPUT_DIR}/source.html ${src} 现在不知道如何从源代码中获取文本。有什么想法吗?谢谢
  • 取决于你的实际html代码。

标签: java python angularjs robotframework selenium2library


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

【讨论】:

    猜你喜欢
    • 2021-04-04
    • 2022-06-25
    • 1970-01-01
    • 2021-03-27
    • 2022-01-06
    • 2022-07-19
    • 2020-12-31
    • 2020-04-20
    • 2019-02-21
    相关资源
    最近更新 更多