从Watir API,我得到了两个断言(当然可能不正确):
exists?如果我只是想验证该元素是否在HTML中,我可以使用.我不在乎它是否可见.visible?如果我希望能够在页面上看到它,我可以使用.那么,我present?什么时候使用?
在我看来,我可以回答我自己的问题:
present?如果我希望能够在页面上看到它,我可以使用,但我不希望它在HTML中.所以,如果我用记号笔在屏幕上写东西,那会是present?什么?
(对不起,如果我似乎不敬.)
那么 - 在标题中提出问题的另一种方式 - 我visible?应该何时使用以及何时使用present??
visible?和之间的区别present?是HTML中不存在该元素.
当元素不在HTML中时(即为exists?false):
visible? 会抛出异常.present? 将返回false.我倾向于坚持,present?因为我只关心用户是否可以看到该元素.我不在乎是否因为它被风格隐藏而无法看到,例如display:none;,或者不在DOM中,例如它被删除了.我只会使用,visible?如果应用程序实际上将不在DOM中的元素视为与DOM不同但不可见的含义.
例如,给定页面:
<html>
<body>
<div id="1" style="block:display;">This text is displayed</div>
<div id="2" style="block:none;">This text is not displayed</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在查找页面上没有的div时,您可以看到区别:
browser.div(:id => '3').visible?
#=> Watir::Exception::UnknownObjectException
browser.div(:id => '3').present?
#=> false
Run Code Online (Sandbox Code Playgroud)
对于页面上的元素,两种方法将是相同的:
browser.div(:id => '1').visible?
#=> true
browser.div(:id => '1').present?
#=> true
browser.div(:id => '2').visible?
#=> false
browser.div(:id => '2').present?
#=> false
Run Code Online (Sandbox Code Playgroud)
这两种方法的比较exists?可以在Watirways书中找到.
| 归档时间: |
|
| 查看次数: |
4566 次 |
| 最近记录: |