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 では 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)

ご協力ありがとうございました!

4

1 に答える 1

1

コメントで述べたように、解決策は最新バージョンのselenium-webdriver(2.27.2)にアップグレードすることです。

于 2013-01-07T12:43:47.120 に答える