【问题标题】:Click all links inside 'div' with watir-webdriver使用 watir-webdriver 单击 'div' 中的所有链接
【发布时间】:2012-09-25 21:24:42
【问题描述】:
我有以下 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>
【问题讨论】:
标签:
ruby
watir
watir-webdriver
【解决方案1】:
类似:
browser.div(:class=>"container").links.each do | link |
link.click
browser.back
end
【解决方案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 时,它不会像每次一样点击第二个链接的值时间缓存将被清除。
【解决方案3】:
你也可以试试:
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