WebDriver python NoSuchElementException,在xpath中具有显式标记名称

时间:2014-01-06 21:17:46

标签: python selenium xpath

在我的硒测试中,使用以下代码:

el = driver.find_element_by_xpath("//*[@id='myid']")
print el.tag_name

按预期输出

ul

但是,如果在XPath表达式中将//*通配符替换为显式//ul

el = driver.find_element_by_xpath("//ul[@id='myid']")
抛出

NoSuchElementException。无法解释。使用css选择器:

el = driver.find_element_by_css_selector("ul#myid")

工作正常。

使用:Windows 7 x64,python 2.7 x64,selenium 2.39,FireFox 26.0

2 个答案:

答案 0 :(得分:0)

我怀疑它是XHTML命名空间。请参阅类似问题herehere。 我的印象是,Webdriver / Selenium的一个限制是没有办法为XPath声明名称空间,并且该问题尚未得到解决。

因此,您可能会遇到解决方法,例如//*...//*[local-name() = 'ul']等。

答案 1 :(得分:0)

使用硒时使用Xpath非常不准确。它甚至在selenium文档中直接令人不满。使用ID或名称,除非它们是动态的,或者您有其他原因无法使用它们。