【问题标题】:Python: Selenium xpath to find element with case insensitive characters?Python:Selenium xpath 查找不区分大小写字符的元素?
【发布时间】:2013-11-26 22:06:49
【问题描述】:

我能做到

search = "View List"
driver.find_elements_by_xpath("//*/text()[normalize-space(.)='%s']/parent::*" % search)

但我需要它忽略并匹配所有带有文本的元素,例如:“View List”或“view LIST”

search = "View List"
driver.find_elements_by_xpath("//*/lower-case(text())[normalize-space(.)='%s']/parent::*" % search.lower())

上述方法似乎不起作用。 lower-case() 在 XPATH 1.0 中

【问题讨论】:

    标签: python xpath selenium


    【解决方案1】:

    lower-case() 函数仅受 XPath 2.0 支持。对于 XPath 1.0,您必须使用 translate()

    stackoverflow answer 中给出了示例代码。

    编辑: selenium python 绑定站点有一个常见问题解答 - Does Selenium 2 supports XPath 2.0 ?:

    参考: http://seleniumhq.org/docs/03_webdriver.html#how-xpath-works-in-webdriver

    Selenium 将 XPath 查询委托给浏览器自己的 XPath 引擎,所以 Selenium 支持 XPath 支持任何浏览器 支持。在没有原生 XPath 引擎的浏览器中(IE 6,7,8),Selenium 仅支持 XPath 1.0。

    【讨论】:

    • 无论如何要让 xpath 2.0 在 selenium python 中工作?该解决方案确实不是最佳的
    • 很遗憾没有。 xpath 2.0 需要浏览器支持,不是 selenium/python 限制。
    • 这是我的想法,使用支持xpath 2.0的javascript库并在python中注入
    • 让我们知道你是怎么做的,如果可行的话我会很感兴趣。
    • 一旦我弄清楚如何将 jquery 文件注入 selenium python phantomjs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    相关资源
    最近更新 更多