1
我被問到是否可以在硒web驅動程序中處理多個彈出窗口。 坦率地說,我不知道它。如何同時處理多個彈出窗口
但它是正確的方式。假設我們正在做,我們的屏幕上有3個彈出窗口。所以:
- 獲取句柄(每個窗口句柄)
- 聚焦一個窗口
- 關閉窗口
- 重複相同並關閉它
請糾正我,如果上我錯了。 感謝和美好的一天。 - S.K
我被問到是否可以在硒web驅動程序中處理多個彈出窗口。 坦率地說,我不知道它。如何同時處理多個彈出窗口
但它是正確的方式。假設我們正在做,我們的屏幕上有3個彈出窗口。所以:
請糾正我,如果上我錯了。 感謝和美好的一天。 - S.K
由於Faiz在評論中提到,每個窗口的引用都存儲在driver.window_handles
數組中。
第一把手應該是你的主窗口,因此關閉彈出窗口(在Ruby中)可能會去是這樣的:
driver.window_handles[1..-1].each do |handle|
driver.switch_to.window(handle)
driver.close
end
driver.switch_to.window(driver.window_handles.first)
處理一些邊緣情況下,像警報和拋出的異常將採取更多位的代碼雖然。
您必須對每個彈出窗口執行SwitchFrame(),然後關閉它。 – bit
是的,這是正確的方法。獲取每個彈出窗口的窗口句柄,使用'driver.SwitchTo()。Window(windowHandle)'切換到它,並使用'driver.Close()'關閉它。 – Faiz
如果你不想繼續你的測試,你總是可以使用driver.quit()。這將關閉WebDriver實例化的所有瀏覽器。 – Sighil