如何通过 xpath 查找 Selenium 中的所有元素并忽略它们的第一部分?

How to find all elements in Selenium by xpath and ignore their first part?

例如这 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 搜索这些元素并忽略中间的长数字?

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

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

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

如果您不介意使用 CSS 选择器,您可以采用更直接的方式来完成此操作。您的 XPath 对于所有相关元素来说都有些脆弱。下面是 Java.

中的工作代码
driver.findElements(By.cssSelector("[aria-label='Tweet actions']"));

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