我正在尝试验证链接的文本是否存在于。在单击链接之前,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出现后确保文本“Third Link”存在。
我试过了,但是说它找不到那个元素。
assert_equal(true, browser.div(:class => "more-links").a(:text => "Third Link"))
我可以找到这个文本但是非常慢并且想要指定这个特定的div
browser.text.include?("Third Link")
思想?
答案 0 :(得分: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
返回false。
如果exists?
附加到该行,则会返回true
:
browser.div(:class => "more-links").a(:text => "Third Link").exists?
#=> true
答案 1 :(得分: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(...)