Mic*_*elR 3 watir watir-webdriver
我有以下内容:
<ul class="a">
<li class="b">
<a class="c">
<span class="d">
<strong>text</strong>
</span>
</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我正试图从跨度中获取"文本".
当我尝试:
puts browser.ul( :class =>'a').li( :class =>'b').link(:class =>'c').span(:class =>'d')
Run Code Online (Sandbox Code Playgroud)
我把span元素拿回来了.#<Watir::Span:0x007fa1d11edb18>我应该这样做.
但在尝试时:
puts browser.ul( :class =>'a').li( :class =>'b').link(:class =>'c').span(:class =>'d').text
Run Code Online (Sandbox Code Playgroud)
我得到一个错误说:
unable to locate element, using {:class=>'b', :tag_name=>"li"}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
如果您可以指向问题可重现的页面,这将有所帮助,即使这意味着您自己创建页面,将其放在Dropbox中并公开.
您是否尝试使用已发布的html和ruby代码复制问题?我问,因为问题不能与提供的代码重现.看看你自己:
> browser.ul( :class =>'a').li( :class =>'b').link(:class =>'c').span(:class =>'d')
=> #<Watir::Span:0x..fa66c75ff618434cc located=false selector={:class=>"d", :tag_name=>"span"}>
> browser.ul( :class =>'a').li( :class =>'b').link(:class =>'c').span(:class =>'d').text
=> "text"
Run Code Online (Sandbox Code Playgroud)
据我所知,你很惊讶当你提供一些代码时,Watir返回一个元素,但是当你想对元素执行一个方法时,它会抱怨它无法找到该元素.
仔细查看代表页面元素的ruby对象:
#<Watir::Span:0x..fa66c75ff618434cc located=false selector={:class=>"d", :tag_name=>"span"}>
Run Code Online (Sandbox Code Playgroud)
请注意located=false.据我所知,这意味着watir在尝试访问它之前会创建一个ruby对象,因此代码的第一行不会引发任何异常.但是当你尝试使用该元素时,watir无法在页面上找到并抱怨.
| 归档时间: |
|
| 查看次数: |
7034 次 |
| 最近记录: |