3

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

3 回答 3

9

就像是:

browser.div(:class=>"container").links.each do | link | 
  link.click 
  browser.back
end
于 2012-09-07T00:24:04.700 回答
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 时,它不会获得要单击的第二个链接的值,因为每次缓存都会被清除。

于 2012-09-25T13:24:42.830 回答
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 
于 2012-09-07T19:53:27.313 回答