【问题标题】:How to locate a tag name inside a div using xpath and Robotframework如何使用 xpath 和 Robotframework 在 div 中定位标签名称
【发布时间】:2020-12-19 16:20:51
【问题描述】:

所以我断言 dom 中存在一个特定的标签。 div 中没有 id 或 class,所以我使用 xpath 来定位它。我不确定如何正确写出路径。 DOM 简化后如下所示

<div id="top-list">
<div data-version="12345" data-list="1"  data-point="10">

我想断言 data-list 存在,但它建议我找到该标签的 xpath 是 //*[@id="top-list"]/div[1]

我需要添加什么来确保它寻找data-list 而不仅仅是div。我想单独声明该 div 内的许多其他标签。为了便于阅读,我只展示一两个。

我尝试了像 //*[@id="top-list"]/div[1]["data-list"] 这样的 xpath 和其他一些变体,但我似乎找不到正确的路径。

提前感谢所有帮助。

【问题讨论】:

    标签: python xpath robotframework


    【解决方案1】:

    如果你想定位具有特定属性的节点这个应该可以解决问题:

    //div[@id="top-list"]/div[@data-list]
    

    您也可以在 XPath 中指定@data-list 值:

    //div[@id="top-list"]/div[@data-list="1"]
    

    【讨论】:

    • 是的,这很有魅力。非常感谢。如果有2个div说,是//div[@id="top-list"]/div/div[@data-list]
    • @JackGruber 如果目标div 可能嵌套在另一个div 中,您可以尝试//div[@id="top-list"]//div[@data-list]
    • 最后一个快速的问题,如果你马上知道的话。我还需要获取该元素的元素属性(值)并将其设置为变量。所以我正在写${data-list-element} 获取元素属性xpath=//*[@id="top-list"]/div[@data-list]。该变量在不同的文件中声明。当它在单独的文件中时,它似乎无法为我找到该属性。如果我将变量写在与断言相同的页面上,它就可以工作。我断言它不等于空,使用不应该等于${data-list-element} ${empty} 如果变量设置在同一文件位置,它可以正常工作。
    • @JackGruber ,不幸的是,我不熟悉RobotFramework,所以我不知道如何提取属性值。最好为此问题创建单独的问题
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多