【问题标题】:Finding elements by xpath pattern in Selenium python在 Selenium python 中通过 xpath 模式查找元素
【发布时间】:2016-10-31 21:36:51
【问题描述】:

我正在使用 selenium python 和 lettuce 来测试 django 应用程序。

在以下模式中有很多元素具有 xpath,我不知道文档中存在多少这些元素。

.//*[@id='accordion-note-1']
.//*[@id='accordion-note-2']
.//*[@id='accordion-note-3']
.//*[@id='accordion-note-4']

有没有办法在 driver.find_elements_by_xpath 中使用模式?
基本上我的目的是让所有项目都具有这种 xpath 模式。

【问题讨论】:

  • 如果 xpath 1.0 - .//*[starts-with(@id, 'accordion-note')]
  • 我不知道我用的是什么版本? @splash58 .....如何找出?
  • 我也不知道硒。如果下面的答案会返回错误,试试我的表达方式
  • @splash58 您的回答效果很好。下面 noor 也编辑了他的答案。

标签: python xpath selenium-webdriver


【解决方案1】:

不确定这是否可行,但您可以尝试使用以下 xpath:

.//*[starts-with(@id, 'accordion-note')]

这是链接 http://www.zvon.org/xxl/XSLTreference/Output/function_starts-with.html

你也可以在这里使用包含

.//*[contains(@id, 'accordion-note')]     

【讨论】:

  • 我已经这样使用了你的答案。 world.driver.find_elements_by_xpath(".//*[matches(@id, 'accordion - IT - \\d+')]")。这是我得到这个错误的错误。 给定的选择器 .//*[matches(@id, 'accordion - IT - \d+')] 无效或不会生成 WebElement
  • 没有成功。试试楼上的评论。请也为这个问题投票,以便其他人可以回答。
  • @AdilMalik 你成功了吗?
  • 是的。多谢你们。所以重点是我们可以在 xpath 中使用模式?
猜你喜欢
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
相关资源
最近更新 更多