2012-09-06 33 views
3

我有下面的DOM設置,我試圖用watir-webdriver單擊每個/每個鏈接。請記住,「隨機數字X」和「隨機名稱X」都是隨機的,不能用於提出解決方案。用watir-webdriver點擊'div'裏的所有鏈接

<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> 

回答

8

喜歡的東西:

browser.div(:class=>"container").links.each do | link | 
    link.click 
    browser.back 
end 
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 
1

你有將所有鏈接存儲在一個數組或結構中,而ñ您將能夠點擊網頁或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,它不會得到第二個環節的價值點擊每次緩存將被清除。

+0

絕對是進入多個頁面的正確方法。 – Signus