我目前有一个搜索结果列表,我想循环找到一个特定的元素。这个元素可以出现多次(从几个到几千个),但我只是想找到元素的第一个实例,单击它然后退出我的循环。
尝试了以下但是认为我有点偏离
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
任何指针都将不胜感激 谢谢!
答案 0 :(得分:2)
您无需遍历元素。默认情况下,Watir-Webdriver将返回第一个匹配元素。
只是做:
@browser.div(:id=>"resultsList").link(:href=>"linkname").click
这将点击搜索结果中包含" linkname"的href的第一个链接。请注意,如果您确实希望链接文本(不是href)匹配" linkname"它应该是link(:text=>"linkname")
。