【发布时间】:2017-08-23 17:57:50
【问题描述】:
使用 capybara 和 minitest,如果元素存在于页面上,您将如何检查元素的可见性?该类并不总是保证在那里,所以我需要先检查它是否在页面上。
我能想到的只有:
assert find(".class-name").visible? if has_css?(".class-name", :wait=>0)
还有其他方法吗?
【问题讨论】:
使用 capybara 和 minitest,如果元素存在于页面上,您将如何检查元素的可见性?该类并不总是保证在那里,所以我需要先检查它是否在页面上。
我能想到的只有:
assert find(".class-name").visible? if has_css?(".class-name", :wait=>0)
还有其他方法吗?
【问题讨论】:
默认情况下,Capybara 只查找可见元素,所以
if has_css?(".class-name", wait: 0)
仅当元素在页面上可见时才会返回 true
如果你想验证元素不在页面上,或者如果它在页面的源中它必须是可见的,那么你可以做类似的事情
assert_css('.class-name') if has_css?('.class-name', visible: :all)
或者只是
refute_css('.class-name', visible: :hidden) # ensure there is no non-visible element with the class name
【讨论】: