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