切换到Selenium Java中以前打开的窗口-使用Firefox版本56

时间:2018-10-09 09:22:08

标签: java selenium

我通过在Firefox 56中打开一个窗口来执行一些操作,然后打开另一个窗口并进行一些操作。完成第二个窗口中的操作后,我需要切换回先前打开的窗口。

我尝试过使用windowHandler,但无法正常工作。

有人可以帮我吗?我对使用Java的Selenium完全陌生,所以它将对您有很大的帮助! 谢谢。

1 个答案:

答案 0 :(得分:0)

我希望您正在寻找高级浏览器操作, C#中有功能,

对于导航历史记录,我始终使用:-

this.driver.Navigate().Back();

您还可以存储上一个窗口的URL,然后再次导航到该URL。

string oldUrl = this.driver.Url;
this.driver.Navigate().GoToUrl(@oldUrl);

帮助在浏览器窗口或标签之间切换:-

ReadOnlyCollection<string> windowHandles = driver.windowHandles;
driver.SwitchTo(windowHandles.First()); // switch to first opened window

请您更详细地说明为什么windowHandles无法正常工作(任何错误或异常) 如果您已完成第二个窗口上的操作,则应按其在第二个窗口上继续执行的方式将其关闭,

您还可以在windowHandles上使用forEach循环,

driver.Close();// close newly opened window
driver.SwitchTo(windowHandles.First()); // then switch to older window

或使用

driver.Close();
driver.switchTo().window(driver.getWindowHandles().toArray()[0]);