使用Selenium WebDriver和Java在浏览器选项卡之间切换

我需要在浏览器选项卡之间切换,使用以下代码,

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

它有时只是正常工作,但有时它会显示exception。 任何人都可以建议我使用java在单个窗口中切换选项卡是否有任何其他说明。

你必须在这里使用窗口句柄function。 以下是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 

希望这可以帮助!

在浏览器窗口之间切换与切换黑白标签不同。

在某些浏览器中,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(); 

在我的情况下,以下代码工作正常 –

 String oldTab=driver.getWindowHandle(); driver.findElement(pageObj.getL_Popup_Window()).click(); ArrayList newTab = new ArrayList(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);