0

FirefoxでWebアプリをテストするために回帰テストを適応させています。最大の障害は、Firefoxのモーダルダイアログを自動化する方法のようです。

つまり、以下のスクリプトのバリエーションを使用しますが、Firefoxでは機能しません。ieとfirefoxの両方で機能する代替手段はありますか?

popup=Thread.new {
    autoit=WIN32OLE.new('AutoItX3.Control')
    ret=autoit.WinWait(title,"",60)
    if (ret==1)
        puts "There is popup."
        autoit.WinActivate(title)
        button.downcase!
        if button.eql?("ok") || button.eql?("yes") || button.eql?("continue")
            autoit.Send("{Enter}")
        else
            autoit.Send("{tab}")
            autoit.Send("{Enter}")
        end
    elsif (ret==0)
        puts "No popup, please check your code."
    end
}
at_exit { Thread.kill(popup) }
end

   button.click_no_wait

   check_for_popups("Message from webpage", "OK")    
4

2 に答える 2

2

JavaScriptで作成されたダイアログについて話していることを考えると、実際にそれらをテストすることに多くの価値があるのでしょうか?

基本的には、ブラウザの機能をテストすることになります

http://wiki.openqa.org/display/WTR/JavaScript+Pop+Upsで説明されているポップアップのタイプについて話している場合は 、javascript をオーバーライドする最初の解決策が、最適なクロスプラットフォーム オプションであると思います。

このようなモーダル ダイアログの問題は、それらが基本的に OS レベルで発生している UI であっても、もはやブラウザーの DOM 内にないため、OS に固有のツールが必要になることです (win32ole に依存するものなど)。 、autoitなど)ネイティブUIとクリックボタンとの必要な相互作用を生成するために、キーストロークなどを送信します。提示されたソリューションのほとんどは、ウィンドウ上のFFで動作すると思いますが(予想されるウィンドウタイトルの適切な名前変更など)、失敗しますMac または *nix OS で。つまり、OS ごとに異なるソリューションが必要であり、面倒です。

ページのHTMLでイベントを発生させる適切なものを見つけることができることを確認する方が簡単かもしれません. alert('This is an alert box')結局のところ、javascript で何かが呼び出されたときにブラウザがローカル ダイアログをポップアップすることを検証するのは、実際にはあなたの仕事ではありません。onClick = 'javascript:x = confirm('Do you really want to do this');"あなたの懸念は、HTML では、特定の要素が必要なイベントを発生させるようにコード化されていることです 。

于 2011-04-13T17:36:24.637 に答える
0

I am experiencing a similar problem in Firefox (and I do have to test in Firefox). I can see the code calling the Javascript but when I try to override as described above nothing happens. Is there any kind of a workaround for this? Anticipated updates to Watir? ;-)

于 2011-05-06T21:21:23.023 に答える