使用watir-WebDriver时查找链接的兄弟

时间:2011-02-25 11:57:35

标签: ruby automation watir webdriver

我正在使用watir-WebDriver来自动化网站测试自动化。我必须到兄弟姐妹的链接。

看起来像这样

东西>东西2>当前页面标题 (link1)(link2)(text1)

我有text1的类id,我必须通过点击link2返回Something 2。

我如何得到这个。

5 个答案:

答案 0 :(得分:1)

我认为你可以通过elements_by_xpath获得兄弟链接。

例如


HTML来源:

< a href =“foo”> bar< / a>< p class =“baz”> text< / p>


watir-webdriver脚本:

P(:类, '巴兹')。elements_by_xpath( '前同辈:: *')[ - 1]

答案 1 :(得分:1)

如果您可以找到两个兄弟姐妹的共同父母,您可以转到该父母,然后使用以下内容从该点选择元素:

source html:

<tr>
  <th>No. of films</th>
  <td>7</th>
</tr>

scrape(@b是浏览器对象)

@b.th(:text => "No. of films").parent.tds.first.text
#=> 7

答案 2 :(得分:0)

如果(text1)是(link2)的孩子,你可以尝试:

(文本).parent

答案 3 :(得分:0)

如果我理解正确你有一些像div一样的容器元素,里面有两个链接和一些文本。不清楚的是文本是属于外部容器,还是属于自己的容器。如果你说你有文本的'classid'(是类?或id?),我会假设它在它自己的容器元素中。

在那种情况下

browser.element(:class, 'value').parent.link(:index, 2).click

如果没有HTML的实际样本,这是一个更清晰的DOM模型

,这是我能做的最好的事情

答案 4 :(得分:0)

正如之前的所有回答所说,你必须在这个层次结构之上有一个参考点。然后browser.p(:id, 'known').parent.links[1].click将完成这项工作。但如果你真的不这样做,试试这个绝望的简单方法:

browser.link(:text => 'Something 2').click