Подробное объяснение примеров использования API Python Playwright.
Подробное объяснение примеров использования API Python Playwright.

Посмотрите избранные исторические статьи ниже

Большой релиз - Руководство по основам платформы автоматизацииpdfv1.1 Процесс тестирования больших данных, стратегии и проблемы

Принципы фреймворка тестирования – краеугольный камень успеха

10 советов, которые следует знать перед работой над автоматизированным тестированием

В автоматизированном тестировании важны не инструменты.

Что такое драматург

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

Цель Python Playwright API — предоставить высокоуровневый API, который позволяет разработчикам легко и быстро писать автоматическое тестирование, сканирование данных, автозаполнение форм и другие задачи для веб-приложений.

Установить Драматург

в использовании Python Playwright API Прежде необходимо установить Драматург。Установить Метод заключается в следующем:

Язык кода:javascript
копировать
!pip install playwright

После завершения установки вам необходимо скачать и установить браузеры Chromium, Firefox и WebKit. Для загрузки можно использовать следующую команду:

Язык кода:javascript
копировать
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('https://example.com')
            await browser.close()
asyncio.run(main())

Эта команда автоматически загрузит и установит браузеры Chromium, Firefox и WebKit.

3. Используйте Драматург

Используя Python Playwright API, вы можете автоматизировать действия в браузере, выполнив следующие действия:

  • Запустить Браузер;
  • Открыть страницу;
  • Выполнять какие-либо действия, например переход по ссылкам, заполнение форм и т. д.;
  • Получить содержимое страницы;
  • Закрыть Браузер.

Вот пример кода, показывающий, как использовать Playwright для открытия веб-страницы в браузере, заполнения и отправки формы:

Язык кода:javascript
копировать
from playwright.sync_api import Playwright, Browser, Page
def run(playwright: Playwright) -> None:
    with playwright.chromium.launch() as browser:
        with browser.new_context() as context:
            with context.new_page() as page:
                page.goto('https://github.com/login')
                page.fill('#login_field', 'your-username')
                page.fill('#password', 'your-password')
                page.click('button[type="submit"]')
                # Wait for navigation to finish
                page.wait_for_selector('"#your-profile-link"')
                print(page.title())
if __name__ == '__main__':
    from playwright.sync_api import Playwright, sync_playwright
    with sync_playwright() as playwright:
        run(playwright)

В этом примере кода браузер Chromium используется для открытия страницы входа в GitHub, ввода имени пользователя и пароля и нажатия кнопки «Отправить». Затем дождитесь завершения перехода на страницу и распечатайте заголовок текущей страницы.

4. Подробное объяснение API драматурга.

4.1 Работа браузера

Вот как открыть браузер с помощью Playwright:

Язык кода:javascript
копировать
from playwright.sync_api import Playwright, Browser
with playwright.chromium.launch() as browser:
    # do something

Этот код откроет новое окно браузера с использованием браузера Chromium.

4.2 Операции со страницами

Вот как открыть страницу с помощью Playwright:

Язык кода:javascript
копировать
from playwright.sync_api import Playwright, Browser, Page
with browser.new_context() as context:
    with context.new_page() as page:
        page.goto('https://example.com')

Этот код откроет новую страницу в текущем браузере и перейдет на сайт example.com.

4.3 Ожидание операции

При тестировании часто приходится ждать загрузки страницы или появления элемента. Используя Playwright, ожидания можно добиться с помощью следующего кода:

Язык кода:javascript
копировать
from playwright.sync_api import Playwright, Browser, Page
with browser.new_context() as context:
    with context.new_page() as page:
        page.goto('https://example.com')
        page.wait_for_selector('#some-element')

Этот код будет ждать появления элемента с идентификатором some-element на веб-странице, прежде чем продолжить выполнение последующего кода.

4.4 Операции с элементами

С помощью Playwright вы можете выполнять различные операции над элементами на странице, например, кликать, заполнять, делать скриншоты и т.д. Следующий код показывает, как работать с элементами на странице:

Язык кода:javascript
копировать


from playwright.sync_api import Playwright, Browser, Page
with browser.new_context() as context:
    with context.new_page() as page:
        page.goto('https://example.com')
        page.fill('#username', 'your-username')
        page.fill('#password', 'your-password')
        page.click('#login-button')
        page.screenshot(path='screenshot.png')

Этот код заполнит имя пользователя и пароль на веб-сайте example.com и нажмет кнопку входа в систему. После успешного входа будет сделан скриншот страницы.

4.5 Асинхронные операции

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

Язык кода:javascript
копировать
from playwright.async_api import Playwright, async_playwright
async def main() -> None:
    async with async_playwright() as playwright:
        browser = await playwright.chromium.launch()
        context = await browser.new_context()
        page = await context.new_page()
        await page.goto('https://example.com')
        await browser.close()
asyncio.run(main())

Этот код асинхронно открывает веб-сайт example.com с помощью браузера Chromium и закрывает браузер после завершения операции.

5. Резюме

API Python Playwright — это усовершенствованный инструмент автоматического тестирования и очистки данных, который предоставляет тот же набор API, что и версия Node.js, для использования в Python. С помощью Python Playwright API вы можете быстро и легко писать автоматизированное тестирование, сканирование данных, автозаполнение форм и другие задачи для веб-приложений.

В этой статье мы покажем, как установить Python Playwright API, использовать Playwright для открытия браузеров и страниц, ожидания загрузки страницы, управления элементами страницы и других операций. В то же время мы также рассказали, как использовать асинхронные операции для повышения эффективности выполнения кода.

boy illustration
Статья длиной в 9000 слов знакомит вас с процессом запуска SpringBoot — самым подробным процессом запуска SpringBoot в истории — с изображениями и текстом.
boy illustration
Как настроить размер экрана в PR. Учебное пособие по настройке размера видео в PR [подробное объяснение]
boy illustration
Элегантный и мощный: упростите операции ElasticSearch с помощью easy-es
boy illustration
Проект аутентификации по микросервисному токену: концепция и практика
boy illustration
【Java】Решено: org.springframework.http.converter.HttpMessageNotWritableException.
boy illustration
Изучите Kimi Smart Assistant: как использовать сверхдлинный текст, чтобы открыть новую сферу эффективной обработки информации
boy illustration
Начало работы с Docker: использование томов данных и монтирования файлов для хранения и совместного использования данных
boy illustration
Использование Python для реализации автоматической публикации статей в публичном аккаунте WeChat
boy illustration
Разберитесь в механизме и принципах взаимодействия потребителя и брокера Kafka в одной статье.
boy illustration
Spring Boot — использование Resilience4j-Circuitbreaker для реализации режима автоматического выключателя_предотвращения каскадных сбоев
boy illustration
13. Springboot интегрирует Protobuf
boy illustration
Примечание. Инструмент управления батареями Dell Dell Power Manager
boy illustration
Общая интерпретация класса LocalDate [java]
boy illustration
[Базовые знания ASP.NET Core] -- Веб-API -- Создание и настройка веб-API (1)
boy illustration
Настоящий бой! Подключите Passkey к своему веб-сайту для безопасного входа в систему без пароля.
boy illustration
Руководство по настройке Nginx: как найти, интерпретировать и оптимизировать настройки Nginx в Linux
boy illustration
Typecho отображает использование памяти сервера
boy illustration
Как вставить элемент перед указанным ключом в ассоциативный массив в PHP
boy illustration
swagger2 экспортирует API как текстовый документ (реализация Java) [легко понять]
boy illustration
Выбор фреймворка nodejs Express koa egg MidwayJS сравнение NestJS
boy illustration
Руководство по загрузке, установке и использованию SVN «Рекомендуемая коллекция»
boy illustration
Интерфейс PHPforwarding_php отправляет запрос на получение
boy illustration
Создавайте и защищайте связь в реальном времени с помощью SignalR и Azure Active Directory.
boy illustration
ВичатПубличная платформаразвивать(три)——ВичатQR-кодгенерировать&Сканировать кодсосредоточиться на
boy illustration
[Углубленное понимание Java IO] Используйте InputStreamReader для чтения содержимого файла и легкого выполнения задач преобразования текста.
boy illustration
сравнение строк PHP
boy illustration
9 сценариев асинхронного сбоя @Async
boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python
boy illustration
Рекомендации по облегченному артефакту развязки внутренних компонентов Spring Event (событие Spring)
boy illustration
Go: Лесоруб-лесоруб на колесах Введение