Различные платформы автоматизации будут иметь функции записи сценариев, и драматург не является исключением. Ранние инструменты Selenium и Jmeter развились до такой степени, что каждый браузер имеет соответствующий плагин записи. Сегодня мы рассмотрим, как драматург записывает сценарии с помощью системы автоматизации Microsoft. Многим друзьям или детям покажется странным, почему запись сейчас только генерируется в сценарий. Если бы это было объяснено и опубликовано ранее, зачем мне было рвать на себе волосы, чтобы написать код? Брат Хун скажет здесь кое-что: Цель этого — заложить основу для записи и создания сценариев. В противном случае, если вы начнете запись прямо с начала, вы не будете знать, что это значит, даже если скрипт сгенерируется, не говоря уже о том, что в скрипте есть ошибки, требующие отладки и модификации скрипта. драматург может поддерживать автоматическую запись и генерацию сценариев, а это значит, что вам нужно всего лишь нажать на страницу, чтобы автоматически сгенерировать соответствующий сценарий.
1. В командной строке CMD используйте следующую команду, чтобы включить функцию автоматической записи:
playwright codegen
2. После выполнения этой команды программа автоматически откроет два окна: одно — окно браузера, где вы можете взаимодействовать с тестируемым веб-сайтом, а другое — окно инспектора драматурга, где вы можете записать тест, скопировать тест, очистка тестов и изменение языка тестов. Когда мы выполняем ручные операции в окне браузера, код автоматизации, соответствующий ручным операциям, будет автоматически сгенерирован в интерфейсе Playwright Inspector. Как показано ниже:
3. В опции «Цель» интерфейса Playwright Inspector вы можете переключить язык программирования: Python, Java, Node.js, .NET C#. Как показано ниже:
4. В интерфейсе браузера, когда вы наводите указатель мыши на определенную область, автоматически запрашивается код селектора для поиска этого места, что очень удобно использовать. Как показано ниже:
После завершения записи просто закройте браузер вручную.
В командной строке CMD,Используйте сочетания клавишCtrl+C,Затем введитеY,Отключить автоматическую запись,Как показано ниже:
Если вы напрямую используете команду «playwright codegen» для запуска записи сценария, хотя сценарий будет автоматически сгенерирован в процессе записи, сгенерированный сценарий будет автоматически отключен после закрытия браузера. Таким образом, вы никогда больше его не найдете, и ваш тяжелый труд долгое время будет напрасным.
Если вы хотите автоматически сохранить сгенерированный скрипт в файл, вы можете использовать следующую команду для запуска записи скрипта:
playwright codegen -o имя локального файла
Используйте команду «-o», чтобы указать локальный файл. После завершения записи сценария автоматически созданный сценарий будет сохранен в файле.
Если страница, к которой осуществляется доступ, не указана, команда записи автоматически открывает пустую страницу. Но мы можем использовать следующую команду, чтобы позволить браузеру автоматически открывать указанную страницу после запуска.
playwright codegen Укажите URL для открытия -o script.py
Сохранить в локальный файл:
Хун Гэ приводит в качестве примера поиск Baidu «Пекин-Хун Гэ». Полный код процесса поиска генерируется следующим образом:
Справочный код:
# coding=utf-8🔥
# 1. Сначала установите кодировку UTF-8, которая поддерживает китайский и английский языки, как указано выше, обычно они располагаются в первой строке.
# 2. Примечания: включая время создания записи, автора и название проекта.
'''
Created on 2024-01-15
@author: Пекин-Хонге
Публичный аккаунт: Пекин Хунге
Project: Введение в серию «Последний выпуск» — Автоматический тест Python + драматурга — 40 — Запись и создание сценариев
'''
# 3. Импортировать модули
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.locator("#kw").click()
page.locator("#kw").fill("Пекин-Хонге")
page.get_by_role("button", name="Baidu").click()
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
1. Запустите скрипт автоматической записи.
2. Переключитесь на асинхронный режим в Target, как показано на рисунке ниже:
3. Начать запись: Полный код процесса поиска генерируется следующим образом:
Справочный код:
# coding=utf-8🔥
# 1. Сначала установите кодировку UTF-8, которая поддерживает китайский и английский языки, как указано выше, обычно они располагаются в первой строке.
# 2. Примечания: включая время создания записи, автора и название проекта.
'''
Created on 2024-01-15
@author: Пекин-Хонге
Публичный аккаунт: Пекин Хунге
Project: Введение в серию «Последний выпуск» — Автоматический тест Python + драматурга — 40 — Запись и создание сценариев
'''
# 3. Импортировать модули
import asyncio
from playwright.async_api import Playwright, async_playwright, expect
async def run(playwright: Playwright) -> None:
browser = await playwright.chromium.launch(headless=False)
context = await browser.new_context()
page = await context.new_page()
await page.goto("https://www.baidu.com/")
await page.locator("#kw").click()
await page.locator("#kw").fill("Пекин-Хонге")
await page.get_by_role("button", name="Baidu").click()
# ---------------------
await context.close()
await browser.close()
async def main() -> None:
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
Если вы пишете автоматизированные тестовые примеры, вы также можете автоматически генерировать код фреймворка pytest, и это здорово. . .
1. Запустите скрипт автоматической записи.
2. Переключитесь на Pytest в Target, как показано на рисунке ниже:
3. Начать запись: Полный код процесса поиска генерируется следующим образом:
Справочный код:
# coding=utf-8🔥
# 1. Сначала установите кодировку UTF-8, которая поддерживает китайский и английский языки, как указано выше, обычно они располагаются в первой строке.
# 2. Примечания: включая время создания записи, автора и название проекта.
'''
Created on 2024-01-15
@author: Пекин-Хонге
Публичный аккаунт: Пекин Хунге
Project: Введение в серию «Последний выпуск» — Автоматический тест Python + драматурга — 40 — Запись и создание сценариев
'''
# 3. Импортировать модули
from playwright.sync_api import Page, expect
def test_example(page: Page) -> None:
page.goto("https://www.baidu.com/")
page.locator("#kw").click()
page.locator("#kw").fill("Пекин-Хонге")
page.get_by_role("button", name="Baidu").click()
В «Драматурге» также есть множество записанных командных операций. Если вам интересно, вы можете попробовать это сами. Соответствующие параметры команды следующие:
1.codegen запускается в браузере и выполняет операции
playwright codegen playwright.dev
2.Playwright открывает окно браузера с установленной областью просмотра определенной ширины и высоты и перестает отвечать на запросы, поскольку тест необходимо запускать в тех же условиях.
Используйте опцию --viewport для создания тестов с разными размерами области просмотра.
playwright codegen --viewport-size=800,600 playwright.dev
3.--device
Записывайте сценарии и тесты при моделировании мобильных устройств, используя такие параметры, как настройка размера области просмотра и пользовательского агента.
Имитация мобильного устройства iPhone11. Примечание. Значение устройства должно быть заключено в двойные кавычки и учитывать регистр.
playwright codegen --device="iPhone 11" playwright.dev
4. Имитация сопоставления цветов
playwright codegen --color-scheme=dark playwright.dev
5. Имитировать географическое положение, язык и часовой пояс.
playwright codegen --timezone="Europe/Rome" --geolocation="41.890221,12.492348" --lang="it-IT" maps.google.com
6. Сохранение статуса аутентификации
Запустите 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.
Если вы хотите использовать кодогенерацию в какой-то нестандартной настройке (например, с использованием браузера_context.route()), вы можете вызвать функцию page.pause(), которая откроет отдельное окно с элементом управления кодогенерацией. По сравнению с тем, что вы видели в коде, который прокомментировал Хун Гэ ранее, он в основном используется для отладки кода.
# coding=utf-8🔥
# 1. Сначала установите кодировку UTF-8, которая поддерживает китайский и английский языки, как указано выше, обычно они располагаются в первой строке.
# 2. Примечания: включая время создания записи, автора и название проекта.
'''
Created on 2024-01-15
@author: Пекин-Хонге
Публичный аккаунт: Пекин Хунге
Project: Введение в серию «Последний выпуск» — Автоматический тест Python + драматурга — 40 — Запись и создание сценариев
'''
# 3. Импортировать модули
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
# Make sure to run headed.
browser = p.chromium.launch(headless=False)
# Setup context however you like.
context = browser.new_context() # Pass any options
context.route('**/*', lambda route: route.continue_())
# Pause the page, and start recording manually.
page = context.new_page()
page.pause()
Сегодняшняя статья в основном объясняет и описывает запуск, выключение и полный процесс записи, а также запись других команд. Ладно, уже поздно. Начнем с вступления и пояснений по поводу записи драматурга. Спасибо за терпение в чтении! ! !