當使用相同的驅動程式實體打開瀏覽器時,開關作業(按照https://www.browserstack.com/guide/handle-multiple-windows-in-selenium)但是當我嘗試用兩個不同的 web 實體打開兩個不同的視窗時驅動程式如何使其作業?我想將控制權切換到第一個打開的 chrome 視窗。請幫忙。
uj5u.com熱心網友回復:
你不能這樣做。這是 2 個不同的、完全獨立的 Web 驅動程式實體(行程),您不能在它們之間切換或在它們運行期間在它們之間傳遞 Windows 句柄。
uj5u.com熱心網友回復:
在兩個瀏覽背景關系之間切換,例如兩個谷歌瀏覽器由兩個不同的WebDriver打開的視窗,您可以使用以下代碼行切換焦點:
((JavascriptExecutor) driverA).executeScript("window.focus();");
((JavascriptExecutor) driverB).executeScript("window.focus();");
uj5u.com熱心網友回復:
如果您沒有其他選擇,您可以使用 WinAppDriver,它處理視窗句柄。它主要用于桌面應用程式。它適用于 Web 應用程式,但更耗時。
我不知道 Selenium 中有這樣的選項。您可以附加到已經運行的 Chrome 驅動程式,但據我所知,其他驅動程式沒有這樣的功能。
參考:
如何使用 WinAppDriver Java 在視窗之間切換焦點
https://harith-sankalpa.medium.com/connect-selenium-driver-to-an-existing-chrome-browser-instance-41435b67affd
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/365970.html
