我通过在Firefox 56中打开一个窗口来执行一些操作,然后打开另一个窗口并进行一些操作。完成第二个窗口中的操作后,我需要切换回先前打开的窗口。
我尝试过使用windowHandler,但无法正常工作。
有人可以帮我吗?我对使用Java的Selenium完全陌生,所以它将对您有很大的帮助! 谢谢。
答案 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]);