如何在Java中由不同的Web驱动程序打开的chrome窗口之间切换



当使用相同的驱动程序实例打开浏览器时,开关工作(如下https://www.browserstack.com/guide/handle-multiple-windows-in-selenium)但是当我尝试用两个不同的web驱动程序实例打开两个不同窗口时,如何使其工作?我想把控制切换到第一个打开的镀铬窗口。请帮忙。

你不能那样做。这是两个不同的、完全分离的web驱动程序实例(进程(,您不能在它们运行期间从一个切换到另一个,也不能在它们之间传递窗口句柄。

要在两个浏览上下文之间切换,例如由两个不同的WebDriver打开的两个谷歌chrome窗口,您可以使用以下代码行切换焦点:

((JavascriptExecutor) driverA).executeScript("window.focus();");
((JavascriptExecutor) driverB).executeScript("window.focus();");

如果没有其他选项,可以使用WinAppDriver,它处理窗口句柄。它主要用于桌面应用程序。它适用于web应用程序,但更耗时。

我不知道Selenium中有这样的选项。你可以连接到已经运行的Chrome驱动程序,但据我所知,其他驱动程序没有这样的功能。

参考:
如何使用WinAppDriver Java在窗口之间切换焦点
https://harith-sankalpa.medium.com/connect-selenium-driver-to-an-existing-chrome-browser-instance-41435b67affd

最新更新