我在Python中构建相对复杂的xpath表达式,以便将它们传递给selenium.但是,它很容易出错,所以我正在寻找一个允许我构建表达式而不会弄乱字符串的库.例如,而不是写作
locator='//ul[@class="comment-contents"][contains(., "West")]/li[contains(., "reply")]
我可以这样写:
import xpathbuilder as xpb
locator = xpb.root("ul")
.filter(attr="class",value="comment-contents")
.filter(xpb.contains(".", "West")
.subclause("li")
.filter(xpb.contains (".", "reply"))
这可能不是可读的,但不容易出错.有这样的事吗?
解决方法:
虽然这不是你想要的……你可以使用css选择器
...
import lxml.cssselect
csssel = 'div[class="main"]'
selobj = lxml.cssselect.CSSSelector(csssel)
elements = selobj(documenttree)
生成的XPath表达式在selobj.path中
>>> selobj.path
u"descendant-or-self::div[@class = 'main']"
原文地址:https://codeday.me/bug/20190710/1423367.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。