。可见的?当元素不可见时不给出 false
.visible? doesn't give false when element not visible
有我要检查的测试用例:
- 加载更多按钮可见
- 加载更多不可见
我写了这个方法:
def loadmore_button_visible?
wait_until(20) do
@browser.refresh
link_element(:title => 'load_more').visible?
end
end
并将其用作
expect(on(ProductViewPage).loadmore_button_visible?).to be_true
对于 "test1"
expect(on(ProductViewPage).loadmore_button_visible?).to be_false
"test2"
测试 1 有效,但测试 2 出现超时错误。我想我在这里问过类似的问题 wait_until block is giving time out error
但这次我认为它与 wait_until
块无关,因为 wait_until
适用于 "test1"。
您的 wait_until
块预计解析为真。如果没有,它将引发 TimeoutError。第一个测试通过,因为 link_element(:title => 'load_more').visible?
为真并且满足 wait_until
方法。如果你想让方法 return true 和 false,你需要捕获错误并显式 return false。类似于:
def loadmore_button_visible?
begin
wait_until(20) do
@browser.refresh
link_element(:title => 'load_more').visible?
end
rescue TimeoutError
false
end
end
有我要检查的测试用例:
- 加载更多按钮可见
- 加载更多不可见
我写了这个方法:
def loadmore_button_visible?
wait_until(20) do
@browser.refresh
link_element(:title => 'load_more').visible?
end
end
并将其用作
expect(on(ProductViewPage).loadmore_button_visible?).to be_true
对于 "test1"
expect(on(ProductViewPage).loadmore_button_visible?).to be_false
"test2"
测试 1 有效,但测试 2 出现超时错误。我想我在这里问过类似的问题 wait_until block is giving time out error
但这次我认为它与 wait_until
块无关,因为 wait_until
适用于 "test1"。
您的 wait_until
块预计解析为真。如果没有,它将引发 TimeoutError。第一个测试通过,因为 link_element(:title => 'load_more').visible?
为真并且满足 wait_until
方法。如果你想让方法 return true 和 false,你需要捕获错误并显式 return false。类似于:
def loadmore_button_visible?
begin
wait_until(20) do
@browser.refresh
link_element(:title => 'load_more').visible?
end
rescue TimeoutError
false
end
end