我正在尝试访问li数组中的div
<ul>
<li class="views-row views-row-1 views-row-odd views-row-first">
<div class="news-item">
</li>
<li class="views-row views-row-2 views-row-even">
<li class="views-row views-row-3 views-row-odd">
<div class="news-item">
<div class="image">
<div class="details with-image">
<h2>
<p class="standfirst">The best two-seat </p>
<div class="meta">
<div class="pub-date">26 April 2012</div>
<div class="topic-bar clearfix">
<div class="topic car_review">review</div>
</div>
</div>
</div>
</div>
</li>
我正在尝试访问&#34; div class =&#34;主题car_review&#34;&gt;汽车评论&#34;并获取其文字。 我专门使用该文本的原因是,根据文本的不同,它会输入特定的步骤。
我正在使用的代码是
@topic = @browser.li(:class => /views-row-#{x}/).div(:class,'news-item').div(:class,'details').div(:class,'meta').div(:class,/topic /).text
该脚本之前工作正常并且突然停止工作并且无法获得div(:class,&#39; news-item&#39;)。
我收到的错误消息是
unable to locate element, using {:class=>"news-item", :tag_name=>"div"} (Watir::Exception::UnknownObjectException)
我尝试了div(:class =&gt; / news- /),但仍然无法找到该元素
我真的被困了!!!
答案 0 :(得分:1)
我假设当你在做li(:class => /views-row-#{x}/)
时,x意味着你在迭代所有行?如果是这样,那么您的脚本将在row-2
上失败,因为它不包含news-item
div(导致您看到的错误)。
如果这些'topic car_review'div标签只有一个,你可以这样做:
@topic = @browser.div(:class, 'topic car_review')
更新 - 迭代每个LI:
如果你需要遍历每个LI,那么你可以这样做:
@browser.lis.each do |li|
@topic = li.div(:class, 'topic car_review').text
end