1

別の中にネストされた div のテキストを読み取ろうとしています。これらの各 div には、識別子としてクラスのみがあります。div のインデックスを使用しようとしましたが、まったく機能しません。私のhtmlは次のようになります

<div class="zoneA">
 <div class="zone2A">
  <div class="zone3A">
   <div class="zone3ALeft">
     Text1
   </div
   <div class="zone3ARight">
     Text2
   </div>
  </div>
 </div>
</div>
<div class="zoneA">
 <div class="zone2A">
  <div class="zone3A">
   <div class="zone3ALeft">
     Text3
   </div
   <div class="zone3ARight">
     Text4
   </div>
  </div>
 </div>
</div>

class="zone3ARight"、または Text2 と Text4 を使用して、div からテキストを読みたいと考えています。

同じ名前の非常に多くのクラスを処理する方法について、100%確信が持てません。私はこのようなことを試みています。

puts browser.div(:class, "zone3ARight", :index, 0).text
puts browser.div(:class, "zone3ARight", :index, 1).text

しかし、引数を取得エラー: 予想されるハッシュまたは (:how, "what")

4

1 に答える 1

4

複数のプロパティを使用して要素を検索する場合は、それらをハッシュとして提供する必要があります。ハッシュは次のようになります。

:key1 => "value1", :key2=> "value2"

キー (つまり、Watir が要素を見つける方法) と値 (つまり、Watir が探すもの) が=>ではなく で区切られていることに注意してください,

コードは次のようになります。

puts browser.div(:class => "zone3ARight", :index => 0).text
#=> "Text2"
puts browser.div(:class => "zone3ARight", :index => 1).text
#=> "Text4"

一致するすべての div 要素のコレクションを作成し、それぞれを反復処理することもできます。これは、一致する div の数を知らずにすべての div を調べたい場合に便利です。

browser.divs(:class => "zone3ARight").each do |div|
    puts div.text
end

divsの代わりに が使用されていることに注意してくださいdiv

于 2013-08-14T19:24:25.543 に答える