7

次のコードを使用して、ブラウザーのタブを切り替える必要があります。

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");

時々しか正常に動作していませんでしたが、例外が表示されることがあります。Javaを使用して単一のウィンドウ内でタブを切り替えるための他の指示はありますか?

4

3 に答える 3

8

ここでは、ウィンドウ ハンドル関数を使用する必要があります。以下は、Java で動作するサンプル コードです。

    String parentHandle = driver.getWindowHandle(); // get the current window handle
    System.out.println(parentHandle);               //Prints the parent window handle 
    String anchorURL = anchor.getAttribute("href"); //Assuming u are clicking on a link which opens a new browser window
    anchor.click();                                 //Clicking on this window
    for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle
        System.out.println(winHandle);
        driver.switchTo().window(winHandle);        // switch focus of WebDriver to the next found window handle (that's your newly opened window)              
    }
//Now your driver works on the current new handle
//Do some work here.....
//Time to go back to parent window
    driver.close();                                 // close newly opened window when done with it
    driver.switchTo().window(parentHandle);         // switch back to the original window

お役に立てれば!

于 2014-08-27T14:55:23.177 に答える
3

ブラウザ ウィンドウの切り替えは、白黒タブの切り替えとは異なります。

一部のブラウザーでは windowhandler コマンドが機能する場合がありますが、すべてのブラウザーで機能するとは限りません。

白黒タブをナビゲートするソリューションは次のとおりです

左から右に移動する場合:

Actions action= new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys(Keys.TAB).build().perform();

右から左に移動する場合:

Actions action= new Actions(driver);
action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform();
于 2016-08-09T13:19:25.803 に答える