watir-webdriver是否有#34;通配符标记"?

时间:2016-08-18 21:38:56

标签: ruby wildcard watir watir-webdriver

您知道如何搜索网页的来源:

browser.div(:text => /foo/)

你怎么能这样做:

browser.wildcard(:text => /foo/)

我正在寻找此功能,因为我访问了第1页

<tag1>foo</tag1>

但第2页有

<tag2>foo</tag2>

并且可以确定foo在两个页面的页面中都没有出现。

2 个答案:

答案 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")