2

我是 Watir 的新手,我在使用基于 AJAX 的 webapp 时遇到了这种奇怪的情况。应用程序可能会在页面上呈现通知窗口。这个通知是一个基于 JS 的模态窗口。如果我单击或将鼠标悬停在通知上它就会消失。所以在我的脚本中的某个地方我有:

@browser = Watir::Browser.new :firefox
...
notf = notification
notf.click if notf

获取通知的方法是这样的:

def notification
  if browser.div(:class => "popupContent").present?
    Notification.new(browser.div(:class => "popupContent"))
  end
end

脚本在 IE 和 Chrome 上运行良好,但在 Firefox 上,if 语句在 60 秒后出现“超时:错误”。当我以这种方式更改代码时:

def notification
  begin
    browser.div(:class => "popupContent").wait_until_present(1)
    Notification.new(browser.div(:class => "popupContent"))
  rescue Exception 
    puts "timeout..."
  end
end

Chrome 和 IE 工作正常 - 只是在通知不存在的情况下增加 1 秒延迟。但如果通知不存在,Firefox 仍然有 60 秒超时?!?我做错了什么 - 我需要设置/检查一些 Firefox 设置吗?我有这样的配置: - 带有 Firefox 17.0.1 的 Win7 操作系统 - Ruby 1.9.3p125 - watir-webdriver (0.6.1) - selenium-webdriver (2.26.0)

感谢您的帮助!

4

1 回答 1

1

正如评论中提到的,解决方案是升级到最新版本的 selenium-webdriver (2.27.2)。

于 2013-01-07T12:43:47.120 回答