Недавно Microsoft открыла исходный код проекта под названием «Драматург-Питон». Как развивающийся проект, он был тепло встречен всеми после своего появления. Так что же это такое? Сегодня я познакомлю вас с этим легендарным артефактом Сяобай.
Playwright — это чистый инструмент автоматизации для языка Python. Он может автоматически запускать браузеры Chromium, Firefox и WebKit через единый API. Он может реализовывать функции автоматизации даже без написания кода.
Хотя инструмент тестирования selenium имеет полную документацию, его стоимость обучения не позволяет многим новичкам. Напротив, драматург-питон — это просто артефакт для новичков.
Действительно ли Playwright работает с Python? Ответ — да, Microsoft готова выпустить Playwright для Python. Могут произойти критические изменения API. Но есть вероятность, что этого не произойдет, и Microsoft заявляет, что сделает это только в том случае, если будет уверена, что это улучшит ваше взаимодействие с новой библиотекой. Однако Microsoft также напоминает, что некоторые особые случаи API-интерфейсов конкретных поставщиков еще не поддерживаются, например сбор данных отслеживания Chromium, отчеты о покрытии и т. д.
Playwright — это мощная библиотека Python, которая использует только один API для автоматического выполнения автоматических операций в основных браузерах, таких как Chromium, Firefox и WebKit, и поддерживает работу как в автономном, так и в автономном режиме.
Технология автоматизации, предоставляемая Playwright, является экологичной, мощной, надежной и быстрой и поддерживает операционные системы Linux, Mac и Windows.
Некоторые друзья похвалили это: Будучи чистым инструментом автоматизации для языка Python, этот проект освобождает код и реализует функции автоматизации. Давайте посмотрим, как его использовать.
Установка драматурга — это очень простое двухэтапное решение.
УстановитьplaywrightБиблиотека
pip install playwright
Установите файл драйвера браузера (процесс установки немного медленный)
python -m playwright install
Вышеупомянутые две операции пипса:
Используйте Playwright, не написав ни единой строки кода,Нам просто нужно вручную управлять браузером,Он будет Записывать нашу операцию,Затем автоматически генерируйте сценарии кода.
Ниже приведен код команды Записывать, всего одна строка.
Ввод командной строки --help Все варианты видны
python -m playwright codegen
Использование codegen можно просмотреть с помощью --help. Если его просто использовать, просто добавьте URL-ссылку сразу после команды. Если у вас есть другие потребности, вы можете добавить параметры.
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
варианты, означающие:
Например, я хочу выполнить поиск на сайте baidu.com, использовать драйвер Chromium и сохранить результаты в виде файла Python my.py.
python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com
После ввода командной строки браузер автоматически откроется, и вы увидите, что каждое действие в браузере будет автоматически переведено в код, как показано ниже.
По завершении автоматически закройте браузер и сохраните сгенерированный сценарий автоматизации в файл py.
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, сделайте снимок экрана и выйдите.
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 для одновременного выполнения трех операций браузера.
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, затем выполните определение местоположения и сделайте снимок экрана.
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. Если вам интересно, вы можете попробовать его самостоятельно.
Playwright имеет множество преимуществ перед существующими инструментами автоматического тестирования, в том числе:
Несмотря на некоторые ограничения, драматург теперь обновлен до версии 1.7.0. С каждым поколением обновлений система становится более полной. Как инструмент для новичков, он спасает всех от многих вещей. Мы верим в это. становитесь все лучше и лучше.