我是 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)
感谢您的帮助!