1

私は、FirefoxとChromeで完全に実行できるWebDriverを使用していくつかのスクリプトを作成しました。ただし、これらのスクリプトをIEで実行すると、失敗します。ウィンドウ処理メカニズム中に問題が発生しました。以下はそのためのコードです。

public void switchingWindow() {
    HashSet<String> handles =(HashSet<String>) driver.getWindowHandles();;
    Iterator<String> whandles = handles.iterator();
    int h = 0;
    while(handles.size()<2) {
        handles = (HashSet<String>) driver.getWindowHandles();
        whandles = handles.iterator();
        System.out.println("No Of Windows : "+handles.size());
        h++;
        sleep(500);
        if (h >= 60)
            Assert.fail("Tracker PopUp not loaded successfully");
    }
    parentWindow = whandles.next();
    popUpWindow = whandles.next();
    driver.switchTo().window(popUpWindow);
    System.out.println("PopUp Window is handled");
}
4

2 に答える 2

0

Google Chrome インスタンスを起動し、デフォルトで開くように IE Tab 拡張機能を構成します。これは IE をエミュレートしますが、Microsoft の製品のようにクラッシュすることはありません。

于 2012-05-12T00:49:14.000 に答える
0

IE でのみ発生するランダムなエラーは、私の経験では、要素 (この場合はウィンドウ ハンドラー) がまだ完全に存在していないことが原因であることがよくあります。IE は、Chrome や Firefox とは異なる順序/方法で要素をロードするようです (方法はわかりません)。そのため、他のブラウザーでは適用しなかった IE に waitUntil を適用する必要があることがよくあります。ただし、これはウィンドウハンドラーなので、そうではないと思いますが、そうであれば、私も非常に驚かないでしょう:P

于 2012-05-11T01:32:23.837 に答える