我正在使用 selenium,我需要找到一些 selenium web 元素的 XPaths。
例如:
import selenium.webdriver
driver = selenium.webdriver.Firefox()
element = driver.find_element_by_xpath(<some_xpath>)
elements = element.find_elements_by_xpath(<some_relative_xpath>)
for e in elements:
print e.get_xpath()
我知道我无法从元素本身获取 XPath,但是有什么好的方法可以获取它吗?
我尝试使用 lxml 来解析 HTML,但它无法识别 XPath,<some_xpath>
,我通过了,尽管driver.find_element_by_xpath(<some_xpath>)
确实找到了那个元素。
最佳答案
lxml
可以使用 getpath()
为您自动生成一个绝对 xpath方法。
示例(使用 wikipedia 主页,获取 Logo 的 xpath 表达式):
import urllib2
from lxml import etree
data = urllib2.urlopen("https://en.wikipedia.org")
tree = etree.parse(data)
element = tree.xpath('//div[@id="p-logo"]/a')[0]
print tree.getpath(element)
打印:
/html/body/div[4]/div[2]/div[1]/a
关于python - 如何从 selenium webelement 或 lxml 获取 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24411765/