gpt4 book ai didi

python - 碎片 find_by_xpath : using regex for element text()

转载 作者:行者123 更新时间:2023-11-28 17:32:40 24 4
gpt4 key购买 nike

我正在使用 splinter 运行浏览器测试,并且有一个包含大表格的页面。我想找到所有 <tr>包含 <td> 的元素在他们的文本中有一些格式良好的日期,就像这里突出显示的那个:

enter image description here

很容易找到具有特定文本的行,例如,通过:

browser.find_by_xpath('//tr[.//td[contains(text(), "September")]]')

然后我尝试了类似建议的方法 here使用一般日期模式查找 text()(也欢迎帮助简化我的正则表达式):

exp = '[A-Z][a-z]+\\s[1-9]{1,2},\\s[0-9]{4}'
browser.find_by_xpath('//tr[.//td[matches(text(), "{0}")]]'.format(exp))

这行不通(而且我确实验证了正则表达式可以独立工作)。也没有:

browser.find_by_xpath('//tr[.//td[matches(., "{0}")]]'.format(exp))

如果我的浏览器允许 XPath 2.0,我如何才能正确找到元素?

最佳答案

最新的 Firefox 和 Chrome 都不支持 XPath 2.0。以下是相关的未决问题:

您必须在不使用 matches() 的情况下处理它。例如,您可以通过使用 EAFP approach 来过滤在 Python 中找到的 tr 列表。并使用 datetime.strptime()。示例:

from datetime import datetime

for tr in browser.find_by_tag("tr"):
sorted_on = tr.find_by_css(".sorted-on")

try:
datetime.strptime(sorted_on.text, "%B %d, %Y")
except ValueError:
continue

关于python - 碎片 find_by_xpath : using regex for element text(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com