-1

我正在尝试访问 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>

我正在尝试访问“div class="topic car_review">汽车评论”并获取其文本。我专门使用该文本的原因是,根据文本的内容,它会输入特定的步骤。

我正在使用的代码是

@topic = @browser.li(:class => /views-row-#{x}/).div(:class,'news-item').div(:class,'details').div(:class,'meta').div(:class,/topic /).text

该脚本之前运行良好,但突然停止工作,无法获取 div(:class,'news-item')。

我得到的错误信息是

unable to locate element, using {:class=>"news-item", :tag_name=>"div"} (Watir::Exception::UnknownObjectException)

我尝试了 div(:class => /news-/) 但仍然无法找到该元素

我真的卡住了!!!

4

1 回答 1

1

我假设当你在做li(:class => /views-row-#{x}/)的时候, x 意味着你正在遍历所有行?如果是这样,那么您的脚本将失败,row-2因为它不包含news-itemdiv(导致您看到的错误)。

如果只有这些 '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
于 2012-05-01T13:15:28.723 回答