2012-08-29 118 views
0

我目前有一個搜索結果列表,我希望循環並找到特定元素。這個元素可以發生多次(從幾個到幾千),但我只想找到元素的第一個實例,點擊它然後退出我的循環。Watir/Ruby - 通過搜索結果列表循環 - 搜索元素,如果找到元素 - 操作和退出循環

試過以下,但認爲我是一個有點過

i = 0 
@browser.div(:id=>"resultsList").lis.each do|li| -- loop through list 
@browser.link(:href=>"linkname").exists --- check if element exists 
@browser.goto(@browser.link(:href=>"linkname") --if it exists click 

break if i == 1 ---then break out of loop 

end 

任何指針將不勝感激 謝謝!

+2

HTML的外觀如何?你在尋找什麼元素,具體是什麼?找不到時你想做什麼? –

+0

Aplogies應該澄清:我有一個返回的廣告列表,可以添加書籤。列表上的某些廣告可能已被用戶加入書籤。我想測試書籤功能是否正在工作,所以想要找到列表中尚未被收藏的第一個廣告並點擊它。我試過@ browser.div(:id =>「resultsList」)。link(:href =>「linkname」)。click但webdriver找不到書籤元素,已加書籤的廣告2 - 可以加入書籤 – user1365374

+0

您如何知道哪些鏈接已加入書籤?如果你可以分享一些HTML,這將有助於使它更清晰。 –

回答

2

您不需要遍歷元素。默認情況下,Watir-Webdriver將返回第一個匹配元素。

只要做到:

@browser.div(:id=>"resultsList").link(:href=>"linkname").click 

這將點擊擁有「鏈接名稱」的href搜索結果中的第一個鏈接。請注意,如果您確實希望鏈接文本(而不是href)與「鏈接名稱」匹配,它應該是link(:text=>"linkname")

+1

紅寶石真漂亮。 –