首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在xpath中使用显式标记名的WebDriver python NoSuchElementException

在xpath中使用显式标记名的WebDriver python NoSuchElementException
EN

Stack Overflow用户
提问于 2014-01-07 05:17:46
回答 2查看 315关注 0票数 2

在我的selenium测试中,有以下代码:

代码语言:javascript
复制
el = driver.find_element_by_xpath("//*[@id='myid']")
print el.tag_name

输出与预期一致

代码语言:javascript
复制
ul

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

代码语言:javascript
复制
el = driver.find_element_by_xpath("//ul[@id='myid']")

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

代码语言:javascript
复制
el = driver.find_element_by_css_selector("ul#myid")

工作正常。

使用: FireFox 7 x64、Python2.7 x64、selenium 2.39、Windows 26.0

EN

回答 2

Stack Overflow用户

发布于 2014-01-07 10:15:39

我怀疑它是XHTML名称空间。请参阅类似的问题herehere。我的印象是,Webdriver/Selenium的局限性在于无法声明XPath使用的名称空间,而且这个问题还没有得到解决。

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

票数 0
EN

Stack Overflow用户

发布于 2014-01-09 06:53:26

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20959439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档