访问 li 元素数组中的 div 元素
[英] Accessing a div element in an array of li elements
本文介绍了访问 li 元素数组中的 div 元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试访问 li 数组中的 div
<li class="views-row views-row-1 views-row-odd views-row-first"><div class="news-item"><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="图像"><div class="details with-image"><h2><p class="standfirst">最好的两人座</p><div class="meta"><div class="pub-date">2012 年 4 月 26 日</div><div class="topic-bar clearfix"><div class="topic car_review">review</div>
我正在尝试访问div class="topic car_review">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').
我得到的错误信息是
无法定位元素,使用 {:class=>"news-item", :tag_name=>"div"} (Watir::Exception::UnknownObjectException)
我尝试了 div(:class =>/news-/) 但仍然无法找到该元素
我真的卡住了!!!
解决方案
我假设当你在做 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 做 |li|@topic = li.div(:class, 'topic car_review').text结尾
I am trying to access a div in an li array
<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>
I am trying to access the "div class="topic car_review">car review "and get its text.
The reason I am specifically using that text is that, depending on what the text is it would enter specific steps.
Code that I am using is
@topic = @browser.li(:class => /views-row-#{x}/).div(:class,'news-item').div(:class,'details').div(:class,'meta').div(:class,/topic /).text
The script was working fine before and suddenly it has stopped working and is just not able to get the div(:class,'news-item').
The error message I get is
unable to locate element, using {:class=>"news-item", :tag_name=>"div"} (Watir::Exception::UnknownObjectException)
I tried div(:class => /news-/) but still its just not able to find that element
I am really stuck!!!
解决方案
I assume that when you are doing li(:class => /views-row-#{x}/)
, the x means you are iterating over all rows? If so, then your script will fail on the row-2
since it does not contain the news-item
div (resulting in the error that you see).
If there is only one of these 'topic car_review' div tags, you can just do:
@topic = @browser.div(:class, 'topic car_review')
Update - Iterating over each LI:
If you need to iterate over each LI, then you could do:
@browser.lis.each do |li|
@topic = li.div(:class, 'topic car_review').text
end
这篇关于访问 li 元素数组中的 div 元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!