您知道如何搜索网页的来源:
browser.div(:text => /foo/)
你怎么能这样做:
browser.wildcard(:text => /foo/)
我正在寻找此功能,因为我访问了第1页
<tag1>foo</tag1>
但第2页有
<tag2>foo</tag2>
并且可以确定foo在两个页面的页面中都没有出现。
答案 0 :(得分:3)
元素将找到任何匹配的元素,无论标记名称如何:
browser.element(text: /foo/)
贾斯汀在评论中提出了一个很好的观点。将#element
与正则表达式值配对将导致返回html
元素。
如果你想要引用它的最后一个标签(请注意,这可能是一个令人望而却步的非性能选项):
browser.element(text: /foo/, index: -1)
如果嵌套跨度没有任何问题,这将是一个稍快的选择:
b.element(text: /foo/, tag_name: /span|td/)
一般来说,当你不必使用正则表达式匹配器时,最好避免使用正则表达式匹配器。
答案 1 :(得分:0)
xpath怎么样?
browser.element(xpath: "//tag1[contains(text(),'foo')]")
如果页面上只有一个tag1,您甚至可以:
browser.element(xpath: "//tag1")