В автоматизированном веб-тестировании обработка всплывающих окон — обычная задача. Всплывающие окна могут содержать предупреждения, подтверждения и подсказки. Playwright — это мощный инструмент автоматического тестирования, который обеспечивает гибкий способ обработки всплывающих окон. В этой статье мы подробно углубимся в то, как писать код на Python для обработки различных типов всплывающих окон.
Обычно существует три типа всплывающих окон: предупреждение, подтверждение и продвижение.
Изображения трех всплывающих окон следующие:
Когда появляется всплывающее окно, нам нужно нажать «ОК», прежде чем всплывающее окно исчезнет. Когда мы используем селен для обработки всплывающего окна, мы обычно используем для его обработки switch_to.alert. Конкретный код выглядит следующим образом:
from selenium import webdriver
driver = webdriver.Chrome()
driver.switch_to.alert.accept() #Подтверждаем, соглашаемся; все три всплывающих окна можно использовать;
driver.switch_to.alert.dismiss() #Отмена, несогласие используется во всплывающих окнах подтверждения и подсказки;
title = driver.switch_to.alert.text #Печать всплывающей информации
alert = driver.switch_to.alert #Получить объект оповещения
alert.send_keys() #PromptВведите содержимое во всплывающем окне
Далее давайте посмотрим, как драматург обращается со всплывающими окнами.
Платформа драматурга может прослушивать события диалога. Независимо от того, когда появляется ваше оповещение, событие будет автоматически обработано после его прослушивания.
когда появится диалоговое окно JavaScript,Напримерalert、prompt。Слушатель долженdialog.accept()
илиdialog.dismiss()
диалоговое окно - В противном случае страница зависнет в ожидании диалогового окна, а щелчки и т. д. никогда не завершатся.
Код обработки следующий:
page.on("dialog", lambda dialog: dialog.accept())
Примечание. Если прослушиватель page.on("dialog") не существует, все диалоговые окна будут автоматически закрыты.
Код выглядит следующим образом:
page.on("dialog", handler)
Окна оповещений обычно используются для отображения сообщения пользователю и запроса его на выполнение определенных действий. существовать Playwright , мы можем использовать page.on('dialog')
метод Обработка окон предупреждений. Вот пример:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
def on_dialog(dialog):
print('Dialog message:', dialog.message)
dialog.accept()
page.on('dialog', on_dialog)
page.goto('https://example.com')
В этом примере мы определяем on_dialog
функция для обработки всплывающих окон. В этой функции мы распечатываем сообщение окна предупреждения и принимаем его.
Поля подтверждения обычно используются для отображения сообщения пользователю и запроса подтверждения или отмены действия. существовать Playwright , мы можем использовать dialog.accept()
или dialog.dismiss()
принять или отменить поле подтверждения соответственно. Вот пример:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
def on_dialog(dialog):
print('Dialog message:', dialog.message)
dialog.accept()
page.on('dialog', on_dialog)
page.goto('https://example.com')
# Perform actions that trigger a confirm dialog
# Your code here
В этом примере мы делаем это, вызывая dialog.accept()
принять поле подтверждения. Если вы хотите отменить окно подтверждения, вы можете позвонить dialog.dismiss()
。
Окна подсказок обычно используются для отображения сообщения пользователю и просят его ввести текст или нажать кнопку «ОК». существовать Playwright , мы можем использовать dialog.accept(prompt_text)
чтобы принять приглашение и ввести текст. Вот пример:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
def on_dialog(dialog):
print('Dialog message:', dialog.message)
dialog.accept('Hello, Playwright!')
page.on('dialog', on_dialog)
page.goto('https://example.com')
# Perform actions that trigger a prompt dialog
# Your code here
В этом примере мы делаем это, вызывая dialog.accept('Hello, Playwright!')
чтобы принять приглашение и ввести текст.
Из этой статьи мы узнали, как использовать Python для написания кода для обработки различных типов всплывающих окон. Playwright предоставляет простой и мощный API, который упрощает работу со всплывающими окнами. Начните работу с Playwright и ускорьте процесс веб-автоматического тестирования!