我知道如何使用XPATH查找Webelement,例如:
fruit = webdriver.find_element(By.XPATH, '/div/div[1]/div[2]').text
Output
fruit = 'banana'
但我真正想做的是反其道而行之:
banana_path = webdriver."someway get the XPATH"(text = 'banana')
Output
banana_path = '/div/div[1]/div[2]'
我想这么做是因为首先我会把所有的时间都取出来,这样当1等于10时(例如)我回到网站并抓取与之匹配的文本。不幸的是,有几十条信息(类的名称相同),根据需求不断增加或减少。这就是为什么我需要得到XPATH,因为有了它我就能直接找到我想找的东西。
例如,如果我得到了时间的XPATH:
time_path = '/div[1]/div/div/div/div/div[1]/div[1]/div[2]/div[3]'
我可以找到并擦除XPATH为近位置的文本
webdriver.find_element(By.XPATH, '/div[1]/div/div/div/div/div[1]/div[1]/span/div').text
我在堆栈溢出中找到了答案,但我使用的是Python而不是JavaScript。
Find an element by text and get xpath - selenium webdriver junit
我还发现这个答案教我如何使用urllib2和lxml来实现这一点,但是我正在进入一个站点,它对自动化的保护很强,我只能使用Selenium进入。
How to get an XPath from selenium webelement or from lxml?
我非常感谢您的帮助,因为这是我的自动化系统中最后一个缺失的部分
1条答案
按热度按时间oxiaedzo1#
我知道你的问题了,我使用了selenium和lxml,正如你已经告诉我要使用这两个模块一样。我不知道我的方法是否能正常工作,因为我使用了你的问题
How to get an XPath from selenium webelement or from lxml?
的第二个链接中的lxml部分这就是我方法