Когда срабатывает оповещение и появляется всплывающее окно на веб-странице, элемент управления остается с родительской веб-страницей.Итак, сначала нам нужно переключить или передать элемент управления для всплывающего окна с предупреждением, прежде чем выполнять какие-либо операции.
Эту операцию переключения управления можно выполнить с помощью любого из нижеприведенных фрагментов кода.
alert = driver.switch_to.alert
, затем обработайте предупреждение, используя следующую команду:
alert.accept() – Will click on OK button
Более подробно, пожалуйста, проверьте эту статью .
Редактировать :
После проверки снимка экрана, я думаю, возможно, вы используете window.showModalDialog ()способ отображения всплывающего окна вместо оповещения.Поэтому мы не могли использовать метод alert.accept (), чтобы нажать кнопку «ОК».Вы можете использовать инструменты разработчика F12, чтобы проверить элемент Html, чтобы убедиться, что это веб-страница.
Поскольку это всплывающее окно для отображения веб-страницы, вы можете переключиться на всплывающее окно, а затем, используя find_element_by_id (), чтобы найти кнопку «ОК», после этого мы можем нажать кнопку, чтобы закрыть всплывающее окно.
Вы можете обратиться к следующему коду:
Код ввеб-страница (отобразить диалоговое окно веб-страницы):
<button id='show-windowdialog' onclick='window.showModalDialog("About.aspx", window)'>Open Webpage Dialog</button>
код Python:
from selenium import webdriver
driver = webdriver.Ie("D:\\Downloads\\webdriver\\IEDriverServer_x64_3.14.0\\IEDriverServer.exe")
# connect to the specific ip address
driver.get("http://localhost:54382/pythondhtmlpage.html")
driver.find_element_by_id("show-windowdialog").click()
# find the current window
main_page = driver.current_window_handle
handles = driver.window_handles
# print the window_handle length
print(len(handles))
popup_window_handle = None
# loop through the window handles and find the popup window.
for handle in driver.window_handles:
if handle != main_page:
print(handle)
popup_window_handle = handle
break
# switch to the popup window.
driver.switch_to.window(popup_window_handle)
# trigger the close button to close the popup window.
driver.find_element_by_id("closewindow").click()
# Finally, switch to the main page.
driver.switch_to.window(main_page)
Затем снимок экрана, как показано ниже: