【问题标题】:Select X-Path which has contains words of another X-Path选择包含另一个 X-Path 单词的 X-Path
【发布时间】:2017-07-12 05:28:02
【问题描述】:

在 ROBOT FRAMEWORK 上使用 selenium 库时遇到问题,请帮助。

我有一个下拉菜单,其中有 2 个元素 - 1 是“资源”,2 是“资源管理”。 我使用这个关键字:

点击元素 | ///div[(contains(@class,"combo-list") 或 contains(@class,"dropdown"))]/descendant::[.="Resource"]

但不知何故,它只点击资源管理而不是资源。 请支持。 T_T

【问题讨论】:

  • 分享相同的HTML代码

标签: python xpath robotframework


【解决方案1】:

选择下拉列表时不要Click 元素。您使用关键字Select From List By Label。以下是您的示例:

Select From List By Label    Xpath=ChangeMe    Resource

这将在您找到的下拉菜单中选择条目Resource - 使用您选择的定位器。

Select From List有很多不同的关键字,可以在Selenium2Library Documentation上找到。

编辑:

注意另一个问题:如果您想选择第二次出现的 Xpath - 您只需将其封装在括号 () 中,添加 Xpath= 前缀并在末尾添加 Xpath 的出现次数。例如:

Xpath=(//span[contains(string(), 'Submit')])[2]

这会找到包含单词Submit 的第二个跨度。就我而言,这意味着它找到了第二个提交按钮。即使当前页面上有 5 个(以我为例)。 This should help you 了解 Xpaths。对我学习帮助很大!

有任何问题,请告诉我:)

【讨论】:

    【解决方案2】:

    我最近遇到了一个关于如何使用 Robot Framework 处理下拉列表的类似问题。

    看到这个帖子:Select From List selects item but does not commit change

    Akash W. 分享了这个答案: 使用以下关键字。

    将定位器作为第一个参数传递,将值作为另一个参数传递

    Select from list by label and validate
        [Arguments]    ${locator}      ${select value}
        Focus   ${locator}
        # Select from list by label 
        Select From List By Label   ${locator}  ${select value}
        # Get selected value and validate it against passed value as argument
        ${value} =  Get Selected List Label ${locator}
        Should be equal ${select value} ${value}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 2017-12-20
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      相关资源
      最近更新 更多