Новое поколение сканера Playwright!
Новое поколение сканера Playwright!
Привет всем, меня зовут Брат Цзе.

Недавно Microsoft открыла исходный код проекта под названием «Драматург-Питон». Как развивающийся проект, он был тепло встречен всеми после своего появления. Так что же это такое? Сегодня я познакомлю вас с этим легендарным артефактом Сяобай.

Playwright — это чистый инструмент автоматизации для языка Python. Он может автоматически запускать браузеры Chromium, Firefox и WebKit через единый API. Он может реализовывать функции автоматизации даже без написания кода.

Хотя инструмент тестирования selenium имеет полную документацию, его стоимость обучения не позволяет многим новичкам. Напротив, драматург-питон — это просто артефакт для новичков.

Действительно ли Playwright работает с Python? Ответ — да, Microsoft готова выпустить Playwright для Python. Могут произойти критические изменения API. Но есть вероятность, что этого не произойдет, и Microsoft заявляет, что сделает это только в том случае, если будет уверена, что это улучшит ваше взаимодействие с новой библиотекой. Однако Microsoft также напоминает, что некоторые особые случаи API-интерфейсов конкретных поставщиков еще не поддерживаются, например сбор данных отслеживания Chromium, отчеты о покрытии и т. д.

1. Знакомство с драматургом

Playwright — это мощная библиотека Python, которая использует только один API для автоматического выполнения автоматических операций в основных браузерах, таких как Chromium, Firefox и WebKit, и поддерживает работу как в автономном, так и в автономном режиме.

Технология автоматизации, предоставляемая Playwright, является экологичной, мощной, надежной и быстрой и поддерживает операционные системы Linux, Mac и Windows.

Некоторые друзья похвалили это: Будучи чистым инструментом автоматизации для языка Python, этот проект освобождает код и реализует функции автоматизации. Давайте посмотрим, как его использовать.

2. Использование драматурга

Установить

Установка драматурга — это очень простое двухэтапное решение.

Язык кода:javascript
копировать
УстановитьplaywrightБиблиотека
pip install playwright
Установите файл драйвера браузера (процесс установки немного медленный)
python -m playwright install

Вышеупомянутые две операции пипса:

  • Установить библиотеку зависимостей драматурга,Требуется Python3.7+.
  • УстановитьChromium、Firefox、Файлы драйверов для браузеров, таких как WebKit.
Записывать

Используйте Playwright, не написав ни единой строки кода,Нам просто нужно вручную управлять браузером,Он будет Записывать нашу операцию,Затем автоматически генерируйте сценарии кода.

Ниже приведен код команды Записывать, всего одна строка.

Язык кода:javascript
копировать
Ввод командной строки --help Все варианты видны
python -m playwright codegen

Использование codegen можно просмотреть с помощью --help. Если его просто использовать, просто добавьте URL-ссылку сразу после команды. Если у вас есть другие потребности, вы можете добавить параметры.

Язык кода:javascript
копировать
python -m playwright codegen --help
Usage: index codegen [options] [url]


open page and generate code for user actions


Options:
  -o, --output <file name>  saves the generated script to a file
  --target <language>       language to use, one of javascript, python, python-async, csharp (default: "python")
  -h, --help                display help for command


Examples:


  $ codegen
  $ codegen --target=python
  $ -b webkit codegen https://example.com

варианты, означающие:

  • -o: сохранить скрипт Записать в файл.
  • --target: указывает язык для создания сценариев, включая JS и Python. По умолчанию используется Python.
  • -b: указать драйвер браузера

Например, я хочу выполнить поиск на сайте baidu.com, использовать драйвер Chromium и сохранить результаты в виде файла Python my.py.

Язык кода:javascript
копировать
python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com

После ввода командной строки браузер автоматически откроется, и вы увидите, что каждое действие в браузере будет автоматически переведено в код, как показано ниже.

По завершении автоматически закройте браузер и сохраните сгенерированный сценарий автоматизации в файл py.

Язык кода:javascript
копировать
from playwright import sync_playwright


def run(playwright):
browser = playwright.chromium.launch(headless=False)
context = browser.newContext()

# Open new page
page = context.newPage()


page.goto("https://www.baidu.com/")


page.click("input[name="wd"]")


page.fill("input[name="wd"]", "jingdong")


page.click("text="JD.com"")

# Click //a[normalize-space(.)='Официальный сайт Jingdong JD.COM Как быстро и экономично Просто для качественной жизни']
with page.expect_navigation():
    with page.expect_popup() as popup_info:
        page.click("//a[normalize-space(.)='Официальный сайт Jingdong JD.COM Как быстро и экономично Просто для качественной жизни']")
    page1 = popup_info.value
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright

Кроме того, драматург также предоставляет синхронныйиасинхронный API-интерфейс, документ выглядит следующим образом. Дополнительно: на публичном аккаунте: ИТ-путешествие Джека, закулисный ответ: JGNB, ты можешь получить оригинал Цзе Гэ. PDF руководство.

синхронный

Следующий пример кода: последовательно откройте три браузера, перейдите к поиску Baidu, сделайте снимок экрана и выйдите.

Язык кода:javascript
копировать
from playwright import sync_playwright
with sync_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
    browser = browser_type.launch()
    page = browser.newPage()
    page.goto('https://baidu.com/')
    page.screenshot(path=f'example-{browser_type.name}.png')
    browser.close()
асинхронный

Асинхронную операцию можно объединить с asyncio для одновременного выполнения трех операций браузера.

Язык кода:javascript
копировать
import asyncio
from playwright import async_playwright
async def main():
async with async_playwright() as p:
    for browser_type in [p.chromium, p.firefox, p.webkit]:
        browser = await browser_type.launch()
        page = await browser.newPage()
        await page.goto('http://baidu.com/')
        await page.screenshot(path=f'example-{browser_type.name}.png')
        await browser.close()
        asyncio.get_event_loop().run_until_complete(main())
Мобильный терминал

Что еще более удивительно, так это то, что драматург также может поддерживать мобильные устройства. Браузерная эмуляция терминала. Ниже приведен фрагмент кода из официального документа, который имитирует использование iPhone в заданном географическом месте. 11 В браузере Safari на версии Pro сначала перейдите на сайт maps.google.com, затем выполните определение местоположения и сделайте снимок экрана.

Язык кода:javascript
копировать
from playwright import sync_playwright
with sync_playwright() as p:
iphone_11 = p.devices['iPhone 11 Pro']
browser = p.webkit.launch(headless=False)
context = browser.newContext(
    **iphone_11,
    locale='en-US',
    geolocation={ 'longitude': 12.492507, 'latitude': 41.889938 },
    permissions=['geolocation']
)
page = context.newPage()
page.goto('https://maps.google.com')
page.click('text="Your location"')
page.screenshot(path='colosseum-iphone.png')
browser.close()

Кроме того, его также можно использовать с плагином pytest. Если вам интересно, вы можете попробовать его самостоятельно.

3. Резюме

Playwright имеет множество преимуществ перед существующими инструментами автоматического тестирования, в том числе:

Поддерживает все браузеры
  • Протестировано на Chromium, Firefox и WebKit. Playwright имеет полную поддержку API для всех современных браузеров, включая Google Chrome и Microsoft Edge (с Chromium), Apple Safari (с WebKit) и Mozilla Firefox.
  • Кроссплатформенное тестирование WebKit. Проверьте, как ваше приложение ведет себя в Apple Safari, с помощью Playwright, созданного с помощью WebKit для Windows, Linux и macOS. Протестировано локально и на CI.
  • Проверьте телефон. Протестируйте свои адаптивные веб-приложения в мобильных веб-браузерах с помощью эмуляции устройства.
  • Без заголовка и с заголовком. Playwright поддерживает режимы без заголовка (без пользовательского интерфейса браузера) и без интерфейса (с пользовательским интерфейсом браузера) для всех браузеров и всех платформ. Режим заголовка подходит для отладки, а режим без заголовка — для выполнения CI/облака.
Иметь быстрое и надежное исполнение
  • Автоматически ждать API. Взаимодействия драматурга автоматически ждут, пока элемент будет готов. Это повышает надежность и упрощает процесс написания тестов.
  • Автоматизация без таймаута. Драматург получает сигналы браузера,Например, сетевой запрос,Навигация по страницам и событие загрузки страницы,избавиться от беспокойств, которые мешают вашему сну.
  • Оставайтесь параллельным контексту браузера. Повторно используйте один экземпляр браузера для нескольких параллельных исполняемых сред с изолированным контекстом браузера.
  • Гибкий выбор элементов. Драматург может выбирать элементы, основываясь на строках, доступных пользователю, таких как текстовое содержимое и теги доступности. Эти строки более гибкие, чем селекторы, тесно связанные со структурой DOM.
Имеет мощные возможности автоматизации
  • несколько доменов,Страница и рамка. Playwright — драйвер внепроцессной автоматизации.,Не ограничен объемом выполнения JavaScript на странице.,А сценарии с несколькими страницами можно автоматизировать.
  • Мощный сетевой контроль. Playwright представляет контекстный сетевой перехват для завершения или имитации сетевых запросов.
  • Современные сетевые возможности. Playwright поддерживает веб-компоненты, подключая селекторы, геолокацию, разрешения, веб-работников и другие современные веб-API.
  • Возможность охватить все сценарии. Поддерживает загрузку и выгрузку файлов, внепроцессные iframe, собственные события ввода и даже темный режим.
Но у него также есть ограничения
  • Поддерживаются более старые версии Edge и IE11. Playwright не поддерживает более старые версии Microsoft Edge или IE11 (уведомление об устаревании). Поддержка нового Microsoft Edge (на Chromium).
  • Привязки языка Java: API Playwright в настоящее время недоступен в Java или Ruby. Это временное ограничение, поскольку Playwright поддерживает привязки для любого языка.
  • Тестируйте на реальных мобильных устройствах: Playwright использует настольный браузер для имитации мобильных устройств.

Несмотря на некоторые ограничения, драматург теперь обновлен до версии 1.7.0. С каждым поколением обновлений система становится более полной. Как инструмент для новичков, он спасает всех от многих вещей. Мы верим в это. становитесь все лучше и лучше.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose