使用xpath按位置查找元素

Tjo*_*rie 2 python selenium xpath

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

driver.find_element_by_xpath('//li[0]')
Run Code Online (Sandbox Code Playgroud)

但是,这可以正常工作:

driver.find_elements_by_xpath('//li')[0]
Run Code Online (Sandbox Code Playgroud)

我认为这些都是一样的,虽然我更喜欢第一种方法.这里发生了什么?

Ian*_*nce 6

Python是零索引的,但XPath是一个索引:

第一个位置是1.

因此,以下内容是等效的:

driver.find_elements_by_xpath('//li')[0]
driver.find_element_by_xpath('(//li)[1]')
Run Code Online (Sandbox Code Playgroud)

  • 不完全的.XPath应该是`(// li)[1]`.没有parens,它会选择每个`li`,它是其父级的第一个"li"子. (2认同)