0

我有一些这样的 HTML:

<ul id="directory">
    <li><a id="first" href="/first">first</a></li>
    <li><a id="second" href="/second">second</a></li></ul>

我想根据其文本和与 id 为“目录”的 ul 的关系来定位 id 为“second”的链接,然后使用 watir-webdriver 单击它。

似乎应该简单地说:

browser.ul(:id => 'directory').li.a(:text => 'second')

但这不存在。

经过研究,我想也许我应该这样做:

browser.ul(:id => 'directory').lis.a(:text => 'second')

LICollection甚至没有a方法。我想也许我应该做点什么,each但我不知道会是什么。

有没有一种好方法可以识别这个元素,而无需使用 CSS 或 XPath 选择器,使用以下标准:

  1. 它是一个锚。
  2. 它有文字“第二”。
  3. 它是 li 元素的子元素,它是 ul 元素的子元素,其 ID 为“目录”。
4

2 回答 2

2

你可以做:

browser.ul(:id => 'directory').a(:text => 'second')

在 Watir-Webdriver 中,您无需指定 li 元素即可访问链接。同样,假设一个合理的 HTML 页面,ul 元素中的任何链接都将在 li 元素中(即,我相信 ul 元素的唯一允许的直接子元素是 li 元素)。

于 2012-08-13T19:33:40.647 回答
0

browser.ul(:id => '目录').a(:id => 'second')

让我知道上述声明是否有效。

于 2014-04-07T11:37:00.893 回答