I am getting intermittent failures of when_present. I can't figure out how
to resolve them.
*Environment*:
IE 10 (Browser mode: IE10 Compat View, Document mode: IE7 standards)
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
watir (4.0.2)
watir-webdriver (0.6.4)
selenium-webdriver (2.33.0)
*Failing code*:
def select_menu_item(top_level_menu, menu_item_text)
parent_menu = $b.li(:id, top_level_menu)
parent_menu.when_present.hover
menu_item_text.gsub!(' ', '( | )') # replace space with a regex
for either space or non-breaking space
parent_menu.when_present.link(:text,
/#{menu_item_text}/).when_present.fire_event('onClick')
$b.body.when_present.hover #unhover the menu
end
The specific lines that sometimes fail are:
parent_menu.when_present.hover
and
$b.body.when_present.hover #unhover the menu
The first one causes the CSS menu to drop down. The second one hides it
again. The fire_event line used to intermittently fail as well but the two
when_present
calls seem to have squelched that.
The error I'm getting is:
Selenium::WebDriver::Error::JavascriptError: Error determining if element
is displayed
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/response.rb:51:in
`assert_ok'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/response.rb:15:in
`initialize'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:59:in
`new'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:59:in
`create_response'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:66:in
`request'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:40:in
`call'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:629:in
`raw_execute'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:607:in
`execute'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:548:in
`isElementDisplayed'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/element.rb:171:in
`displayed?'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/watir-webdriver-0.6.4/lib/watir-webdriver/elements/element.rb:387:in
`visible?'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/watir-webdriver-0.6.4/lib/watir-webdriver/elements/element.rb:398:in
`present?'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/watir-webdriver-0.6.4/lib/watir-webdriver/wait.rb:98:in
`block in method_missing'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/watir-webdriver-0.6.4/lib/watir-webdriver/wait.rb:25:in
`until'
C:/Ruby/Ruby200-x64/lib/ruby/gems/2.0.0/gems/watir-webdriver-0.6.4/lib/watir-webdriver/wait.rb:98:in
`method_missing'
The select_menu_item method is being called multiple times during a test
and the test is being looped over multiple times. Each loop starts a new
browser session ($b = Watir::Browser.start(url, :ie) and $b.close).
I was getting these intermittent failures before I started creating and
closing the session on each pass through the test loop.
Any ideas on what I am doing wrong and/or what I can do to resolve this?
Thanks,
-Mont
--
--
Before posting, please read http://watir.com/support. In short: search before
you ask, be nice.
[email protected]
http://groups.google.com/group/watir-general
[email protected]
---
You received this message because you are subscribed to the Google Groups
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.