解析时的Python Webdriver -unexpected EOF(<string>,第1行)

时间:2016-07-28 12:43:32

标签: python selenium-webdriver

我正在使用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:

提前致谢

2 个答案:

答案 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]')

现在,您只需更改索引值即可找到您的愿望元素。

希望它有效......:)