使用java在selenium webdriver中的2个窗口之间切换

时间:2016-12-08 05:47:37

标签: java selenium-webdriver browser

我使用selenium webdriver和java自动化应用程序。在那我必须打开一个浏览器实例&执行一些动作。之后我必须打开另一个浏览器实例,在其中执行一些操作&关闭那个实例。然后我必须再次将控件返回到第一个浏览器实例以执行其他一些操作。

我尝试使用:

String winHandleBefore = driver.getWindowHandle();
//then open new instance and perfom the actions
driver.switchTo().window(winHandleBefore);

但是这返回了一个错误:

org.openqa.selenium.remote.SessionNotFoundException: no such session

我该怎么做?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

当您执行<svg> <polyline points="10 1, 30 1,10 10,30 10" fill="none" stroke-width="2px" stroke="#19af5c"></polyline> </svg>时,重新初始化了driver = new ChromeDriver();对象,导致第一个窗口丢失。您可以通过在打开新窗口后检查窗口句柄的数量来查看它

driver

要解决此问题,请使用临时WebDriver driver = new ChromeDriver(); int len = getWindowHandles().size(); // 1 as expected driver = new ChromeDriver(); len = getWindowHandles().size(); // still 1, has only the new window 打开新窗口

driver