【问题标题】:Retrieve HTML-data with Robot framework and xpath使用 Robot 框架和 xpath 检索 HTML 数据
【发布时间】:2016-04-29 22:26:42
【问题描述】:

首先我访问网站 www.google.de。我想从这个 HTML 代码中检索词 Deutschland

<div class="logo-subtext">Deutschland</div>

我必须使用 xpath,因为这个 div 类中的 id 不可用。 在这里您将看到 HTML 源代码 --> 查看源代码:https://www.google.de/?gws_rd=ssl

  1. 如何将网站的 HTML 加载到机器人变量中?
  2. 如何找到 div-Element 并从中取出文本?

到目前为止我的机器人文件的代码片段:

*** Settings ***
Library           Selenium2Library

*** Test Cases ***
xpath-test
    Open Browser    https://www.google.de/    browser=firefox
    ${elem} =    Get WebElement    xpath=//div[text()="Deutschland"]

【问题讨论】:

  • 请显示您的 HTML 输入的完整示例,请参阅 stackoverflow.com/help/mcve。那么,2)就可以回答了。
  • 试试 xpath=//div[text()="Deutschland"] 为什么要在变量中使用它?只需使用等待页面包含元素或页面应包含该 div 的元素。假设您正在使用 Selenium2Library
  • @kame,正如 Newcomer 所建议的,只要文本位于唯一位置,您就应该能够继续使用该 xpath。
  • 您好,我在代码中进行了编辑。问题是,我不认识这个词。也许还有别的东西然后德国。 - 我不需要它作为变量。但是我最终如何显示我从 HTML 中检索到的单词呢?
  • //div[@class = 'logo-subtext'] 返回正确的元素,但必须有人解释如何在机器人框架中执行此操作。

标签: html selenium xpath robotframework


【解决方案1】:

Selenium2Library 有一个名为Get Text 的关键字,它将返回元素内的文本。您需要做的就是为元素提供一个定位器。

如果网页只有一个带有 logo-subtext 类的 div,您可以使用 xpath,例如 xpath=//div[@class='logo-subtext']

这是一个完整的工作示例,为了清楚起见,使用管道分隔格式:

*** Settings ***
| Library | Selenium2Library
| Suite Teardown | Close all browsers

*** Test Cases ***
| xpath-test
| | Open Browser  | https://www.google.de/ | browser=firefox
| | ${logo text}= | get text | xpath=//div[@class='logo-subtext']
| | log | the logo text is ${logo text}
| | should be equal as strings | ${logo text} | Deutschland

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2023-03-15
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多