- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 splinter 运行浏览器测试,并且有一个包含大表格的页面。我想找到所有 <tr>
包含 <td>
的元素在他们的文本中有一些格式良好的日期,就像这里突出显示的那个:
很容易找到具有特定文本的行,例如,通过:
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/
当使用下面的代码时,我在谷歌搜索结果中发现 PhantomJS find_by_xpath 上的 selenium 错误: from selenium import webdriver driver
我正在使用 splinter 运行浏览器测试,并且有一个包含大表格的页面。我想找到所有 包含 的元素在他们的文本中有一些格式良好的日期,就像这里突出显示的那个: 很容易找到具有特定文本的行,例如,通
我是一名优秀的程序员,十分优秀!