3

次のDOM設定があり、watir-webdriverを使用して各/すべてのリンクをクリックしようとしています。「乱数X」と「ランダム名X」はどちらもランダムであり、解決策を考え出すために使用することはできないことに注意してください。

<div class="container">
<ul>
<li id="Random Number 1"><a href="#">Random Name 1</a></li>
<li id="Random Number 2"><a href="#">Random Name 2</a></li>
<li id="Random Number 3"><a href="#">Random Name 3</a></li>
</ul>
</div>
4

3 に答える 3

9

何かのようなもの:

browser.div(:class=>"container").links.each do | link | 
  link.click 
  browser.back
end
于 2012-09-07T00:24:04.700 に答える
2

すべてのリンクを配列または構造に格納する必要があります。そうすると、Webページ、div、または任意の要素のすべてのリンクをクリックできるようになります。

link = Array.new
i = 0
browser.div(:class, "container").links.each do |li|
link[i] = l.text
i = i + 1
end

li.each do |visit|
b.link(:text, visit).click
b.back
end

これが必要なのは、リンクを配列に格納していない場合、単純なループでは最初のリンクのみがクリックされ、browser.backが実行されると、キャッシュが実行されるたびにクリックする2番目のリンクの値が取得されないためです。クリアされます。

于 2012-09-25T13:24:42.830 に答える
1

また、試すことができます:

browser.div(:class, 'container').as.each do |x|
    x.click
    browser.back
end

または、個々のリンクをヒットするには、次のいずれかを試してください。

browser.div(:class, 'containter').as[0].click  #This is for the first link.   
browser.div(:class, 'containter').a(:text, 'Random Name 1').click 
于 2012-09-07T19:53:27.313 に答える