。可见?元素不可见时不会给出错误

时间:2015-05-14 12:56:15

标签: ruby cucumber watir

我想查看测试用例:

  1. 加载更多可见按钮
  2. 加载更多不可见
  3. 我写了这个方法:

     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”

    它适用于test1,但对于test2,它会产生超时错误。我想我在这里问了类似的问题wait_until block is giving time out error 但这次我认为它不是wait_until阻止wait_until阻止“test1”。

1 个答案:

答案 0 :(得分:2)

您的wait_until阻止期望解析为true。如果没有,则会引发TimeoutError。第一个测试通过,因为link_element(:title => 'load_more').visible?为真,并且满足wait_until方法。如果希望方法返回true和false,则需要捕获错误并显式返回false。类似的东西:

def loadmore_button_visible?
  begin
    wait_until(20) do
      @browser.refresh
      link_element(:title => 'load_more').visible?
    end
  rescue TimeoutError 
    false
  end
end