使用watir-webdriver单击'div'中的所有链接

时间:2012-09-06 22:00:56

标签: ruby watir watir-webdriver

我有以下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>

3 个答案:

答案 0 :(得分:8)

类似的东西:

browser.div(:class=>"container").links.each do | link | 
  link.click 
  browser.back
end

答案 1 :(得分:2)

您必须将所有链接存储在数组或结构中,然后您就可以单击网页或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 :(得分: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