1

私はInternetExplorerDriverを使用しています(そして私はそうしなければなりません)。2つのウィンドウハンドルがあります。これらのウィンドウ間で複数の時間を切り替える必要があります。私はこれらの2行を使用してこれを行います。

driver.switchTo().window(myWindowHandle1);
driver.findElement(By.xpath("//body")).click();

ボディのクリックを追加しました。そうしないと、スイッチが正しく機能しないことがあり、それ以来、これは問題なく機能しました。

今、私は新しい問題を抱えています。3番目のウィンドウスイッチ(1. window1-> window2; 2. window2-> window1; 3. window1-> window2;)が機能しなくなりました。

ElementNotVisibleException: Cannot click on element --- in this case, line 2

そのため、体はもう見えません。以前のウィンドウスイッチは完全に機能するため、ハンドルは正しいです。body要素By.tagNameを見つけても、問題は解決しませんでした。誰もが同じ問題を抱えていましたか?ソリューション?

前もって感謝します

よろしく

4

1 に答える 1

0

私は最終的に答えを見つけました、私は新しいウィンドウに切り替えるために以下の方法を使用しました、

public String switchwindow(String object, String data){
        try {

        String winHandleBefore = driver.getWindowHandle();

        for(String winHandle : driver.getWindowHandles()){
            driver.switchTo().window(winHandle);
        }
        }catch(Exception e){
        return Constants.KEYWORD_FAIL+ "Unable to Switch Window" + e.getMessage();
        }
        return Constants.KEYWORD_PASS;
        }

親ウィンドウに移動するには、次のコードを使用しました。

 public String switchwindowback(String object, String data){
            try {
                String winHandleBefore = driver.getWindowHandle();
                driver.close(); 
                //Switch back to original browser (first window)
                driver.switchTo().window(winHandleBefore);
                //continue with original browser (first window)
            }catch(Exception e){
            return Constants.KEYWORD_FAIL+ "Unable to Switch to main window" + e.getMessage();
            }
            return Constants.KEYWORD_PASS;
            }

このコードを使用して、ウィンドウを切り替えます。

于 2013-10-02T11:56:46.887 に答える