我正在使用 watir-WebDriver 来自动化网站测试自动化。我必须访问 Sibling 链接。
看起来像这样
东西 > 东西 2 > 当前页面标题 (link1) (link2) (text1)
我有 text1 的类 id,我必须通过单击链接 2 返回到 Something 2。
我怎么得到这个。
我正在使用 watir-WebDriver 来自动化网站测试自动化。我必须访问 Sibling 链接。
看起来像这样
东西 > 东西 2 > 当前页面标题 (link1) (link2) (text1)
我有 text1 的类 id,我必须通过单击链接 2 返回到 Something 2。
我怎么得到这个。
如果您可以找到两个兄弟姐妹的共同父级,则可以转到该父级,然后使用以下方法从该点选择元素:
源代码:
<tr>
<th>No. of films</th>
<td>7</th>
</tr>
刮(@b
是浏览器对象)
@b.th(:text => "No. of films").parent.tds.first.text
#=> 7
我认为您可以使用 elements_by_xpath 获得兄弟链接。
例子
HTML 源代码:
<a href="foo">bar</a><p class="baz">文本</p>
Watir-webdriver 脚本:
p(:class,'baz').elements_by_xpath('preceding-sibling::*')[-1]
如果 (text1) 是 (link2) 的孩子,您可以尝试:
(text1).parent
如果我理解正确,您有某种容器元素,例如 div,其中包含两个链接和一些文本。不清楚的是文本是否属于外部容器,还是在它自己的容器内。鉴于您说您有文本的“classid”(是类?还是 id?),我将假定它在它自己的容器元素中。
在这种情况下
browser.element(:class, 'value').parent.link(:index, 2).click
如果没有 HTML 的实际样本,这是我能做的最好的事情,这是一个更清晰的 DOM 模型
正如所有先前的答案所说,您必须在此层次结构之上有一个参考点。然后browser.p(:id, 'known').parent.links[1].click
会做这项工作。但如果你真的不这样做,试试这个绝望的简单方法:
browser.link(:text => 'Something 2').click