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.