【问题标题】:How can I rewrite this css as xpath我怎样才能将这个 css 重写为 xpath
【发布时间】:2018-06-10 23:34:00
【问题描述】:

如何使用类似的逻辑从website 将这个 css 重写为上面的 xpath?

原始css:

.gl-Market_HasLabels + .gl-Market_PWidth-12-3333   .gl-ParticipantOddsOnly_Odds

我试过了:

//div[contains(@class, 'gl-Market_HasLabels')]  +  //div[contains(@class, 'gl-Market_PWidth-12-3333')]//div[contains(@class, 'gl-ParticipantOddsOnly')]

这些 xpath 可以工作,但当我组合它们时就不行了。

【问题讨论】:

    标签: css selenium xpath css-selectors


    【解决方案1】:

    你可以试试这个 XPath:

    //div[contains(@class, 'gl-Market_HasLabels')]/following-sibling::div[contains(@class, 'gl-Market_PWidth-12-3333')]//div[contains(@class, 'gl-ParticipantOddsOnly')]
    

    注意,CSS 选择器中的+ 表示直接下一个兄弟。 XPath 中的following-sibling 返回所有后续兄弟,但 Selenium 代码,例如 driver.find_element_by_xpath(...),将返回第一个(必需)

    或者您可以显式设置要查找的兄弟的索引:

    .../following-sibling::div[contains(@class, 'gl-Market_PWidth-12-3333')][1]//...
    

    请注意,在 XPath 中索引从 1 开始,而不是 0

    【讨论】:

    • 原始的 css 给出了 3 个值,而类似的 xpath 给出了 9 个值。我将使用打印 xpath 进行测试,但在 chrome 检查中会发生这种情况:)
    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2021-09-10
    • 1970-01-01
    • 2021-10-06
    相关资源
    最近更新 更多