Selenium предоставляет инструмент Selenium IDE для записи сценариев. После установки его через магазин плагинов мы можем записывать наши операции на странице браузера в сценарий и выводить их в сценарий на таком языке, как Java или Python. Мы можем. генерировать Скрипт снова воспроизводит наши действия.
Являясь более мощным инструментом веб-автоматизации, чем Selenium, он также имеет функцию записи. В этой статье мы представим функцию записи сценария драматурга.
Playwright имеет возможность создавать тесты прямо из коробки, что делает его отличным способом быстро начать тестирование. Откроется два окна: окно браузера, в котором вы можете взаимодействовать с веб-сайтом, который хотите протестировать, и окно инспектора драматурга, в котором вы можете записать тест, скопировать тест, очистить тест и изменить язык теста.
Команда запуска выглядит следующим образом:
playwright codegen http://адрес сайта
После запуска на компьютере появятся два окна. Слева — браузер, который сможет открыть сайт для работы, а справа — инспектор, который сможет сгенерировать соответствующий скрипт, как показано ниже:
В качестве примера для записи нашего сценария мы возьмем вход в Baidu. Мы входим в Baidu, введя номер учетной записи и пароль, следующим образом:
После того, как мы введем имя пользователя и пароль, нажмите кнопку входа, чтобы войти.
Примечание. Реальная учетная запись здесь не используется, поэтому вход невозможен.
Сгенерированный код выглядит следующим образом:
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://www.baidu.com/")
page.get_by_role("link", name="Войти").click()
page.get_by_placeholder("Номер мобильного телефона/имя пользователя/адрес электронной почты").click()
page.get_by_placeholder("Номер мобильного телефона/имя пользователя/адрес электронной почты").fill("muller")
page.get_by_placeholder("пароль").click()
page.get_by_placeholder("пароль").fill("12345678")
page.get_by_role("button", name="Войти").click()
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
Существует также возможность генерировать асинхронный код.
Конечно, как энтузиаст Python, мне по-прежнему нравится напрямую генерировать код тестового примера Pytest. Очень хорошо, драматург может удовлетворить мои требования.
from playwright.sync_api import Page, expect
def test_example(page: Page) -> None:
page.goto("https://www.baidu.com/")
page.get_by_role("link", name="Войти").click()
page.get_by_placeholder("Номер мобильного телефона/имя пользователя/адрес электронной почты").click()
page.get_by_placeholder("Номер мобильного телефона/имя пользователя/адрес электронной почты").fill("muller")
page.get_by_placeholder("пароль").click()
page.get_by_placeholder("пароль").fill("12345678")
page.get_by_role("button", name="Войти").click()
playwright codegen playwright.dev
Опция --viewport-size генерирует окна разных размеров
playwright codegen --viewport-size=800,600 playwright.dev
--device записывает сценарий при моделировании мобильного устройства с такими параметрами, как установка размера области просмотра и пользовательского агента.
playwright codegen --device="iPhone 12 Pro" https://www.baidu.com
Примечание. Значение устройства должно быть заключено в двойные кавычки и чувствительно к регистру. Текущая платформа не обеспечивает широкого охвата устройств Android.
playwright codegen --color-scheme=dark https://www.baidu.com
playwright codegen --timezone="Asia/Shanghai" --geolocation="30.890221,120.492348" --lang="zh-CN" maps.google.com
Открывающаяся страница выглядит следующим образом:
Запустите codegen для сохранения файлов cookie и localStorage в конце сеанса с помощью --save-storage. После выполнения аутентификации и закрытия браузера файл auth.json будет содержать состояние хранилища.
playwright codegen --save-storage=auth.json
Запустите --load-storage, чтобы использовать ранее загруженное хранилище. Таким образом, все файлы cookie и localStorage будут восстановлены, что приведет большинство веб-приложений в состояние аутентификации.
playwright open --load-storage=auth.json my.web.app
playwright codegen --load-storage=auth.json my.web.app
# Perform actions in authenticated state.
Эта статья в основном знакомит с драматургом Записью. Используя функцию сценария, по сравнению с Selenium, сценарий, записанный драматургом, более удобен в использовании, а функция, записанная драматургом, может напрямую поддерживать другие устройства разных размеров. сценарий, это намного совершеннее, чем селен.