Как получить XPath из selenium webelement или из lxml?
Я использую селен, и мне нужно найти 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>)
сделал удалось найти этот элемент.
1 ответов
lxml
может автоматически генерировать абсолютное XPath для вас, используя getpath()
метод.
пример (используя Википедия главная страница, получение выражения 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