Selenium 如何在选项卡之间切换,执行一些操作并切换回父选项卡?

Selenium 如何在选项卡之间切换,执行一些操作并切换回父选项卡?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,如何切换到新选项卡,在子选项卡中执行一些操作并返回到父选项卡 在我下面的代码中,它将转到新选项卡,执行操作。但是父标签(yahoo)的会话与子标签(gmail)的会话相同 这是我的密码: 驱动程序。获取(“http://www.yahoo.com"); ReadExcell.setExcelFile(Constant.filepath+Constant.fileName,“Sheet1”); System.out.println(driver.getTitle()); 字符串parentwin

如何切换到新选项卡,在子选项卡中执行一些操作并返回到父选项卡

在我下面的代码中,它将转到新选项卡,执行操作。但是父标签(yahoo)的会话与子标签(gmail)的会话相同

这是我的密码:


驱动程序。获取(“http://www.yahoo.com");
ReadExcell.setExcelFile(Constant.filepath+Constant.fileName,“Sheet1”);
System.out.println(driver.getTitle());
字符串parentwindow=driver.getWindowHandle();
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
js.executeScript(“window.open”()http://www.gmail.com“,”空白“;”;
Set s1=driver.getWindowHandles();
System.out.println(“windows计数为”+s1.size());
对于(字符串winHandle:driver.getWindowHandles())
{
driver.switchTo()窗口(winHandle);
字符串str=winHandle.toString();
System.out.println(“tostring值为”+str);
驱动程序。获取(“http://www.gmail.com");
字符串Email=ReadExcell.getCellData(10,1);
字符串Pwd=ReadExcell.getCellData(10,2);
gmailogin.Emailid(驱动程序).sendKeys(电子邮件);
gmailogin.next(驱动程序)。单击();
GmailLogin.密码(驱动程序).发送密钥(Pwd);
gmailogin.Pwdnext(驱动程序).click();
System.out.println(driver.getTitle());
//System.out.println(“窗口计数为”+winHandle());
}
driver.close();
driver.switchTo().window(父窗口);
System.out.println(父窗口);
System.out.println(“切换标题为=“+driver.getTitle()”);
是否有其他方法命名每个选项卡并转到相应的选项卡执行某些操作并返回到父选项卡?你的帮助会更有帮助。。。。
注意:我正在使用mac

您可以使用以下方法:

public void switchToWindow(int index){
    Set<String> windows = driver.getWindowHandles();
    driver.switchTo().window((String) windows.toArray()[index]);
}

我尝试了您的代码,但它再次在第一个选项卡中加载与tab2相同的会话,这是因为您没有注销,仍然使用相同的浏览器。您需要注销或启动另一个驱动程序会话以获得一个干净的开始。
switchToWindow(1); // Switch to new window
doSomething();
switchToWindow(0); // Switch back to original window