【问题标题】:Find element by position using xpath使用 xpath 按位置查找元素
【发布时间】:2018-03-13 21:31:20
【问题描述】:

我的 selenium 驱动程序发现了大约 13 个 li 元素。但是,以下不起作用,给出未找到元素的错误:

driver.find_element_by_xpath('//li[0]')

但是,这可以正常工作:

driver.find_elements_by_xpath('//li')[0]

我认为这些是相同的,尽管我更喜欢第一种工作方式。这是怎么回事?

【问题讨论】:

  • 很简单,XPath 索引不是从零开始的。 Python 索引是。

标签: python selenium xpath


【解决方案1】:

Python 是零索引的,但 XPath is one-indexed:

第一个位置是1。

因此,以下是等价的:

driver.find_elements_by_xpath('//li')[0]
driver.find_element_by_xpath('(//li)[1]')

【讨论】:

  • 不完全。 XPath 应该是(//li)[1]。如果没有括号,它会选择每个 li,它是其父级的第一个 li 子级。
猜你喜欢
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 2021-01-26
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
相关资源
最近更新 更多