0

我正在尝试验证链接的文本是否存在于 . 在单击链接之前,该 div 不可用。点击链接后,更多的链接可以点击。以下是单击以显示其他链接后 html 的样子。

<div class="more-links">
   <a href="url">First Link</a>
   <a href="url">Second Link</a>
   <a href="url">Third Link</a>
   <a href="url">Fourth Link</a>
   <a href="url">Fifth Link</a>
</div>

我想确保在 div 出现后出现“第三链接”文本。

我已经尝试过了,但是 watir 说它找不到那个元素。

assert_equal(true, browser.div(:class => "more-links").a(:text => "Third Link"))

我可以用这个找到文本,但速度很慢,想指定这个特定的 div

browser.text.include?("Third Link")

想法?

4

2 回答 2

5

以下代码不会返回true

browser.div(:class => "more-links").a(:text => "Third Link")
#=> #<Watir::Link:0x..f99c8864c located=false specifiers={:tag_name=>["a"], :text=>"Third Link"}>

所以,assert_equal返回的是假的。

如果exists?附加到该行,则返回true

browser.div(:class => "more-links").a(:text => "Third Link").exists?
#=> true
于 2013-05-17T22:24:39.243 回答
0

browser.text.include?("第三个链接")

我可以用这个找到文本,但速度很慢,想指定这个特定的 div

...这正是您在这里所做的:

browser.div(:class => "more-links").a(:text => "Third Link")

因此,在您的原始代码行中,您只需将“浏览器”替换为更具体的搜索:

browser.div(:class => "more-links").a(:text => "Third Link")

另请注意,您永远不会写:

assert_equal(true, ...)

因为您可以节省一些打字时间,只需编写:

assert(...)
于 2013-05-18T14:36:37.727 回答