python selenium xpath html-parsing lxml

python - ¿Cómo obtener un XPath de selenium webelement o de lxml?



html-parsing (1)

lxml puede autogenerar un xpath absoluto para ti usando el método getpath() .

Ejemplo (usando la página principal de wikipedia , obteniendo la expresión xpath para el logo):

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)

Huellas dactilares:

/html/body/div[4]/div[2]/div[1]/a

Estoy usando selenio y necesito encontrar los XPath de algunos elementos web de selenio.

Por ejemplo:

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()

Sé que no puedo obtener el XPath del elemento en sí, pero ¿hay alguna manera de obtenerlo de todos modos?

Intenté usar lxml para analizar el HTML, pero no reconocí el XPath, <some_xpath> , pasé, aunque driver.find_element_by_xpath(<some_xpath>) logró encontrar ese elemento.