How to get XPath from selenium webelement or from lxml?

I use selenium and I need to find XPaths of some selenium web elements.

For instance:

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

I know that I cannot get XPath from the element itself, but is there a good way to get it?

I tried using lxml to parse HTML, but it does not recognize XPath, <some_xpath> , I went through, although driver.find_element_by_xpath(<some_xpath>) did manage to find this element.

+6
source share
1 answer

lxml can automatically generate an absolute xpath for you using the getpath() method.

Example (using the wikipedia main page, getting the xpath expression for the 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) 

Print

 /html/body/div[4]/div[2]/div[1]/a 
+5
source

Source: https://habr.com/ru/post/971342/


All Articles