【问题标题】:How to find all elements in Selenium by xpath and ignore their first part?如何通过 xpath 查找 Selenium 中的所有元素并忽略它们的第一部分?
【发布时间】:2016-06-25 23:08:42
【问题描述】:

例如这 3 个:

.//*[@id='stream-item-tweet-746838978284818432']/div/div[2]/div[5]/div[2]
.//*[@id='stream-item-tweet-746838891605397504']/div/div[2]/div[5]/div[2]
.//*[@id='stream-item-tweet-746838648461590528']/div/div[2]/div[5]/div[2]

网站上的数字不断变化。是否可以通过 xpath 搜索这些元素并忽略中间的长数字?

【问题讨论】:

  • 如果你的问题的标题也是一个问题更好,所以。祝你好运!
  • 你能显示html源码吗

标签: selenium xpath find webdriver element


【解决方案1】:

尝试使用xpath的contains功能
.//*[contains(@id,'stream-item-tweet')]/div/div[2]/div[5]/div[2]

【讨论】:

    【解决方案2】:

    您可以使用 starts-with 函数,这样您将只获得带有 id 的元素,该元素以您想要的任何文本开头想要

    .//*[starts-with(@id,'stream-item-tweet-')]/div/div[2]/div[5]/div[2]
    

    【讨论】:

      【解决方案3】:

      如果您不介意使用 CSS 选择器,您可以用更直接的方式来执行此操作。您的 XPath 对于所有相关元素都有些脆弱。以下是 Java 中的工作代码。

      driver.findElements(By.cssSelector("[aria-label='Tweet actions']"));
      

      我确信这可以转换为 XPath,如果您绝对需要的话,但我不是 XPath 专家。

      【讨论】:

        猜你喜欢
        • 2015-11-10
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        • 2022-01-27
        • 2019-10-21
        • 2016-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多