私は 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 では 60 秒後に if ステートメントの 'Timeout:Error' が発生します。コードを次のように変更すると、次のようになります。
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 OS-Ruby 1.9.3p125-watir-webdriver(0.6.1)-selenium-webdriver(2.26.0)
ご協力ありがとうございました!