Switch tabs using Selenium WebDriver with Java

前端 未结 21 1620
野性不改
野性不改 2020-11-22 12:09

Using Selenium WebDriver with JAVA. I am trying to automate a functionality where I have to open a new tab do some operations there and come back to previous tab (Parent). I

21条回答
  •  星月不相逢
    2020-11-22 13:02

    There is a difference how web driver handles different windows and how it handles different tabs.

    Case 1:
    In case there are multiple windows, then the following code can help:

    //Get the current window handle
    String windowHandle = driver.getWindowHandle();
    
    //Get the list of window handles
    ArrayList tabs = new ArrayList (driver.getWindowHandles());
    System.out.println(tabs.size());
    //Use the list of window handles to switch between windows
    driver.switchTo().window(tabs.get(0));
    
    //Switch back to original window
    driver.switchTo().window(mainWindowHandle);
    


    Case 2:
    In case there are multiple tabs in the same window, then there is only one window handle. Hence switching between window handles keeps the control in the same tab.
    In this case using Ctrl + \t (Ctrl + Tab) to switch between tabs is more useful.

    //Open a new tab using Ctrl + t
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
    //Switch between tabs using Ctrl + \t
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");
    

    Detailed sample code can be found here:
    http://design-interviews.blogspot.com/2014/11/switching-between-tabs-in-same-browser-window.html

提交回复
热议问题