3

我能够使用文本上的完全匹配找到我正在寻找的元素,如下所示,但是当我尝试将其扩展到使用正则表达式时它不起作用。我究竟做错了什么?

>> browser.h3(:text => 'Latest News').exist?
=> true
>> browser.h3(:text, 'Latest News').exist?
=> true
>> browser.h3(:text, /Latest News/).exist?
=> false

>> p browser.h3(:text, 'Latest News')
#<Watir::Heading:0x..fcb7790992119c2b2 located=false selector={:text=>"Latest News", :tag_name=>"h3"}>
=> #<Watir::Heading:0x..fcb7790992119c2b2 located=false selector={:text=>"Latest News", :tag_name=>"h3"}>
>> p browser.h3(:text, /Latest News/)
#<Watir::Heading:0x54fac9ec99992782 located=false selector={:text=>/Latest News/, :tag_name=>"h3"}>
=> #<Watir::Heading:0x54fac9ec99992782 located=false selector={:text=>/Latest News/, :tag_name=>"h3"}>

根据评论进行编辑 ,在 afl 网站上找到了似乎是他所追求的 HTML。这是页面 html 中对“最新消息”进行不区分大小写搜索的唯一匹配项

<div class="double-col column">
  <div class="segment   ">
    <h3 class="section-header    blocked">
        LATEST NEWS</h3>
    <div class="content">
      <div class="list-item focus">
        <div class="img-holder">
      .........                             
4

1 回答 1

4

给定测试站点,我无法重现您的结果。对我来说,所有使用“最新消息”的定位器都返回 false(即字符串和正则表达式匹配)。页面文字全部大写,“最新消息”。使用它而不是“最新消息”允许字符串和正则表达式定位器返回 true。

require 'watir'

browser = Watir::Browser.new :chrome
browser.goto 'afl.com.au'

puts browser.h3(:text => 'Latest News').exist?
#=> false
puts browser.h3(:text, 'Latest News').exist?
#=> false
puts browser.h3(:text, /Latest News/).exist?
#=> false

puts browser.h3(:text => 'LATEST NEWS').exist?
#=> true
puts browser.h3(:text, 'LATEST NEWS').exist?
#=> true
puts browser.h3(:text, /LATEST NEWS/).exist?
#=> true
于 2013-04-16T12:55:13.910 回答