Here's what I'm currently doing:
def wait_for(timeout = 5)
Selenium::WebDriver::Wait.new(:timeout => timeout).until { yield }
rescue Selenium::WebDriver::Error::TimeOutError => e
puts 'Timeout Error'
rescue Selenium::WebDriver::Error::NoSuchElementError => ex
puts 'No Such Element Error'
end
Two questions:
1) Why is it showing me the Timeout Error twice? It should just time out and end the test
2) How do I get it to not show me all that extra information at the bottom? Ideally what I'd like is just for it to say "Timeout" or "No such element" and that's it.**
My log spits out alllll of this:
Loaded suite C:/2oh/qt Started
First Run Timeout Error Timeout Error E ======================================================================================================================================================================================================== Error: test_18a(Tests):
Selenium::WebDriver::Error::NoSuchElementError: no such element (Session info: chrome=43.0.2357.134) (Driver info: chromedriver=2.15.322448 (52179c1b310fec1797c81ea9a20326839860b7d3),platform=Windows NT 6.1 SP1 x86_64) C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/response.rb:71:inassert_ok' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/response.rb:34:in
initialize' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/http/common.rb:78:innew' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/http/common.rb:78:in
create_response' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/http/default.rb:90:inrequest' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/http/common.rb:59:in
call' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/bridge.rb:657:inraw_execute' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/bridge.rb:635:in
execute' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/remote/bridge.rb:603:infind_element_by' C:/Ruby22/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.46.2/lib/selenium/webdriver/common/search_context.rb:61:in
find_element' C:/2oh/qttests.rb:28:intest_hdesrbf' C:/2oh/qt.rb:13:in
test_18a' 10: 11: def test_18a 12: puts "First Run" => 13: test_hdesrbf 14: end
15:
16: