我能够做到这一点
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中
lower-case()
lower-case()仅XPath 2.0支持此功能。对于XPath 1.0,您必须使用translate()。
translate()
编辑:Selenium python绑定站点有一个常见问题解答-Selenium 2是否支持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。
参考: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。