2

我正在使用 watir-WebDriver 来自动化网站测试自动化。我必须访问 Sibling 链接。

看起来像这样

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

我有 text1 的类 id,我必须通过单击链接 2 返回到 Something 2。

我怎么得到这个。

4

5 回答 5

1

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

源代码:

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

刮(@b是浏览器对象)

@b.th(:text => "No. of films").parent.tds.first.text
#=> 7
于 2013-03-21T04:57:45.543 回答
1

我认为您可以使用 elements_by_xpath 获得兄弟链接。

例子


HTML 源代码:

<a href="foo">bar</a><p class="baz">文本</p>


Watir-webdriver 脚本:

p(:class,'baz').elements_by_xpath('preceding-sibling::*')[-1]

于 2011-02-25T13:35:42.760 回答
0

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

(text1).parent

于 2011-02-25T13:22:23.570 回答
0

如果我理解正确,您有某种容器元素,例如 div,其中包含两个链接和一些文本。不清楚的是文本是否属于外部容器,还是在它自己的容器内。鉴于您说您有文本的“classid”(是类?还是 id?),我将假定它在它自己的容器元素中。

在这种情况下

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

如果没有 HTML 的实际样本,这是我能做的最好的事情,这是一个更清晰的 DOM 模型

于 2011-03-16T20:15:12.513 回答
0

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

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

于 2016-07-25T11:05:53.327 回答