Switch between browser tabs using Selenium WebDriver with Java

后端 未结 3 788
无人及你
无人及你 2020-12-20 18:53

I need to switch between the browser tabs, used the following code,

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


        
相关标签:
3条回答
  • 2020-12-20 19:27

    In my case, the following code is working fine-

    String oldTab=driver.getWindowHandle();
        driver.findElement(pageObj.getL_Popup_Window()).click();
         ArrayList<String> newTab = new ArrayList<String>(driver.getWindowHandles());
            newTab.remove(oldTab);
            driver.switchTo().window(newTab.get(0));
        WebElement ele = driver.findElement(pageObj.getI_input_name());
        ele.click();
        ele.sendKeys(name);
        driver.findElement(pageObj.getI_submit()).click();
        driver.switchTo().window(oldTab);
    
    0 讨论(0)
  • 2020-12-20 19:28

    You have to use window handle function here. Here is a sample working code in 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
    

    Hope this helps!

    0 讨论(0)
  • 2020-12-20 19:33

    Switching between browser window is different from switching b/w tabs.

    In some browser windowhandler command may work but it wont work in all browser.

    Here is the solution to navigate b/w tabs

    for navigating left to right side:

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

    For navigating right to left :

    Actions action= new Actions(driver);
    action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform();
    
    0 讨论(0)
提交回复
热议问题