Ruby watir webdriver是否有一个;通配符标记“;?
您知道如何像这样搜索页面的源:Ruby watir webdriver是否有一个;通配符标记“;?,ruby,wildcard,watir,watir-webdriver,Ruby,Wildcard,Watir,Watir Webdriver,您知道如何像这样搜索页面的源: browser.div(:text => /foo/) browser.wildcard(:text => /foo/) 你怎么能这样做: browser.div(:text => /foo/) browser.wildcard(:text => /foo/) 我正在寻找这个功能,因为我访问的第1页 <tag1>foo</tag1> foo 但是第2页已经 <tag2>foo</tag2
browser.div(:text => /foo/)
browser.wildcard(:text => /foo/)
你怎么能这样做:
browser.div(:text => /foo/)
browser.wildcard(:text => /foo/)
我正在寻找这个功能,因为我访问的第1页
<tag1>foo</tag1>
foo
但是第2页已经
<tag2>foo</tag2>
foo
可以肯定的是,对于这两个页面,foo都不会出现在页面的其他地方。元素将找到任何匹配的元素,而不管标记名如何:
browser.element(文本:/foo/)
贾斯汀在评论中提出了一个很好的观点。将#元素
与正则表达式值配对将导致返回html
元素
如果您想要引用它的最后一个标记(请注意,这可能是一个禁止使用的非性能选项):
browser.element(文本:/foo/,索引:-1)
如果嵌套跨距没有任何问题,这将是一个稍微快一点的选项:
b.element(text:/foo/,tag|u name:/span | td/)
一般来说,在不必*使用正则表达式匹配器的情况下,最好避免使用正则表达式匹配器。元素将找到任何匹配的元素,而不管标记名如何:
browser.element(文本:/foo/)
贾斯汀在评论中提出了一个很好的观点。将#元素
与正则表达式值配对将导致返回html
元素
如果您想要引用它的最后一个标记(请注意,这可能是一个禁止使用的非性能选项):
browser.element(文本:/foo/,索引:-1)
如果嵌套跨距没有任何问题,这将是一个稍微快一点的选项:
b.element(text:/foo/,tag|u name:/span | td/)
一般来说,在不必使用正则表达式匹配器的情况下,避免使用正则表达式匹配器要好得多。xpath呢
browser.element(xpath: "//tag1[contains(text(),'foo')]")
如果页面上只有一个tag1,您甚至可以:
browser.element(xpath: "//tag1")
xpath呢
browser.element(xpath: "//tag1[contains(text(),'foo')]")
如果页面上只有一个tag1,您甚至可以:
browser.element(xpath: "//tag1")
出于好奇,什么是
和
?
和
,但我找到了一个不需要元素的解决方案,出于好奇,你为什么要问?我只是想知道你的用例是什么。出于好奇,
和
?
和>,但是我发现了一个不需要元素@orde的工作环境,出于好奇,你为什么要问?我只是想知道你的用例是什么。我想你必须小心。如果页面上有“foo”,它将始终返回html
元素,这是包含文本的第一个元素。如果已知标记文本完全是“foo”,则browser.element(文本:'foo')
将更安全。我认为您必须小心这一点。如果页面上有“foo”,它将始终返回html
元素,这是包含文本的第一个元素。如果已知标记文本完全是“foo”,则browser.element(文本:'foo')
将更安全。