我有一些像这样的HTML:
<ul id="directory">
<li><a id="first" href="/first">first</a></li>
<li><a id="second" href="/second">second</a></li></ul>
我想找到id为“second”的链接,根据其文本以及与id为“directory”的ul的关系,然后使用watir-webdriver单击它。
似乎应该简单地说:
browser.ul(:id => 'directory').li.a(:text => 'second')
但这不存在。
经过研究,我想也许我应该这样做:
browser.ul(:id => 'directory').lis.a(:text => 'second')
但LICollection
甚至没有a
方法。我想也许我应该用each
做一些事情,但我不知道它会是什么。
有一种很好的方法可以识别这个元素,而不需要使用这些标准来使用CSS或XPath选择器:
答案 0 :(得分:2)
你可以这样做:
browser.ul(:id => 'directory').a(:text => 'second')
在Watir-Webdriver中,您无需指定li元素即可访问该链接。同样,假设一个合理形成的HTML页面,ul元素中的任何链接都将在li元素中(即我相信ul元素中唯一允许的直接子元素是li元素。)
答案 1 :(得分:0)
browser.ul(:id =&gt;&#39;目录&#39;)。a(:id =&gt;&#39; second&#39;)
让我知道上述声明是否有效。