【发布时间】:2016-07-29 03:29:55
【问题描述】:
我正在使用 Python 和 webdriver
我正在尝试使用 xpath 查找元素并获取:“解析时意外 EOF (, line 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:
提前致谢
【问题讨论】:
-
您的实际 HTML 可能更大(包含
div、ul和其他标签)。如果您的整个 HTML 只是一个<path ...></path>,那么您可以使用 xpath//path[1]。如果可行,您可以向 HTML 添加越来越多的标签,并使 xpath 更长,直到它停止工作。从中您知道 xpath 的哪个部分有错误。如果您仍然无法弄清楚如何修复错误,请将其添加到问题中,如下所示:xpath ... 有效,xpath ... 导致错误。 -
顺便说一句,这是一个非常可怕的 XPath。如果你在测试中使用它,它肯定会很脆。
-
对不起,我没听懂你的建议。你是说设置 xpath //path[1] 就这样吗?
-
我试图将 xpath 设置为 //path[1] 但它不起作用
-
@ohad 试试这个 xpath
//*[@id = 'j_id0:j_id5:j_id6:j_id36']/descendant::path[1]..然后告诉我..