我正在使用Python和webdriver
我正在尝试使用带有xpath的find元素定位元素并获取:“解析时出现意外的EOF(,第1行)”
当我尝试通过查找具有类名的元素来找到它时,它运行良好。
问题在于我无法使用它,因为我有几个同名的类。
这是xpath:
//*[@id="j_id0:j_id5:j_id6:j_id36"]/div/div/div[2]/div[2]/div[2]/ul/li[1]/div/svg/g/g[1]/path[1]
这是类名:st0
这是我的代码行:
ss = self.SELENIUM_DRIVER.find_element_by_xpath('//*[@id="j_id0:j_id5:j_id6:j_id36"]/div/div/div[2]/div[2]/div[2]/ul/li[1]/div/svg/g/g[1]/path[1]')
- 什么不起作用
ddd = self.SELENIUM_DRIVER.find_element_by_class_name('st0')
- 哪个有效
这是html:
提前致谢
答案 0 :(得分:0)
以下查询将查找path
,其父树为div/svg/g/g[1]
,类别等于st0
且索引为[1]
:
self.SELENIUM_DRIVER.find_element_by_xpath('//div/svg/g/g[1]/path[@class=st0][1]')
如果父树从前面开始是唯一的,那么将查询缩短可能是个好主意,例如:
self.SELENIUM_DRIVER.find_element_by_xpath('//g/g[1]/path[@class=st0][1]')
答案 1 :(得分:0)
我认为这是您提供的Id j_id0:j_id5:j_id6:j_id36
的问题,并且正如您所说的其他元素的类名相同,所以您应该尝试使用xpath
传递索引,如下所示: -
self.SELENIUM_DRIVER.find_element_by_xpath('(//path[@class=st0])[1]')
现在,您只需更改索引值即可找到您的愿望元素。
希望它有效......:)