一般
あなたは、単一の要素を得るために同様の方法で要素のコレクションを取得することができます。基本的に要素型メソッドを複数形にする必要があります。たとえば、
#Singular method returns first matching div
browser.div
#Pluralized method returns all matching divs
browser.divs
単一の要素と同じロケータを使用してコレクションを使用できます。
発生した問題の解決策
を、あなたが行うことができます:あなたは、一致するdiv要素のすべてを含む単一のコレクションを作成する必要がある場合
#Iterate over divs that have the class 'month_cell OverridenDay'
browser.divs(:class => 'month_cell OverridenDay').each do |overridden_div|
#Within each div with class 'month_cell OverridenDay',
# iterate over any children divs where the id starts with month
overridden_div.divs(:id => /^month/).each do |div|
#Do something with the div that has id starting with month
puts div.id
end
end
#=> "month-2013-05-0"
、あなたはCSSを使用する必要がありますかxpathセレクタ。 XPathを使用
divs = browser.elements(:css => 'div.month_cell.OverridenDay div[id^=month]')
divs.each do |e|
puts e.id
end
#=> "month-2013-05-0"
:このため
divs = browser.divs(:xpath => '//div[@class="month_cell OverridenDay"]//div[starts-with(@id, "month")]')
divs.each do |e|
puts e.id
end
#=> "month-2013-05-0"
ありがとうを、非常にCSSセレクタを(ワチール-webdriverをで、要素のみの方法は、CSS-ロケータをサポートしていることに注意)を使用
役に立った – larryq