안녕하세요 여러분 신인입니다!
최근 G 홈페이지를 방문해보니 마이크로소프트가 떠오르는 프로젝트로 "playwright-python"이라는 프로젝트를 오픈소스화한 것을 발견했습니다.
Playwright는 Python 언어를 위한 순수 자동화 도구로, 코드를 작성하지 않고도 단일 API를 통해 Chromium, Firefox 및 WebKit 브라우저를 자동으로 실행하여 자동화 기능을 구현할 수 있습니다.
테스트 도구인 selenium에는 완전한 문서가 있지만 학습 비용이 많이 들기 때문에 초보자가 많이 사용하지 않습니다. 반면에 playwright-python은 단순히 초보자를 위한 인공물입니다.
Playwright는 정말 Python에서 작동하나요? 대답은 '예'입니다. Microsoft는 Python용 Playwright를 사용할 준비가 되어 있습니다. 주요 API 변경이 발생할 수 있습니다. 그러나 그런 일은 일어나지 않을 가능성이 높으며 Microsoft는 새 라이브러리에 대한 사용자 경험이 향상될 것이라는 것을 알고 있는 경우에만 그렇게 할 것이라고 말합니다.
그러나 Microsoft는 Chromium 추적 수집, 적용 범위 보고 등 공급업체별 API의 일부 특수 사례가 아직 지원되지 않음을 상기시킵니다.
Playwright는 단 하나의 API를 사용하여 Chromium, Firefox 및 WebKit과 같은 주류 브라우저에서 자동화된 작업을 자동으로 수행할 수 있으며 헤드리스 및 헤드리스 모드 모두에서 실행을 지원하는 강력한 Python 라이브러리입니다.
Playwright가 제공하는 자동화 기술은 친환경적이고 강력하며 안정적이고 빠르며 Linux, Mac 및 Windows 운영 체제를 지원합니다.
일부 친구들도 다음과 같이 칭찬했습니다. Python 언어를 위한 순수 자동화 도구로서 이 프로젝트는 코드를 해방하고 자동화 기능을 구현하는 방법을 살펴보겠습니다.
을 사용하여 Playwright 설치 Playwright 설치는 매우 간단하며 두 단계로 해결할 수 있습니다.
安装playwright库 pip install playwright 安装浏览器驱动文件(安装过程稍微有点慢) python -m playwright install
위의 두 pip 작업은 별도로 설치됩니다.
당신은 그렇지 않습니다. Playwright를 사용하기 위해 코드 한 줄을 작성할 필요가 없으며 브라우저를 수동으로 작동하기만 하면 됩니다. 브라우저는 작업을 기록한 다음 자동으로 코드 스크립트를 생성합니다.
다음은 단 한 줄로 녹음된 명령 codegen입니다.
命令行键入 --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, --helpdisplay help for command Examples: $ codegen $ codegen --target=python $ -b webkit codegen https://example.com
옵션 의미:
예를 들어 baidu.com에서 검색하고 크롬 드라이버를 사용하여 결과를 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="京东"") # Click //a[normalize-space(.)='京东JD.COM官网 多快好省 只为品质生活'] with page.expect_navigation(): with page.expect_popup() as popup_info: page.click("//a[normalize-space(.)='京东JD.COM官网 多快好省 只为品质生活']") page1 = popup_info.value # --------------------- context.close() browser.close() with sync_playwright() as playwright: run(playwright
또한 극작가는 동기식 및 비동기식 API 인터페이스도 제공하며 문서는 다음과 같습니다.
아래 샘플 코드: 브라우저 3개를 차례로 열고, 바이두 검색에 들어가서 스크린샷을 찍고 종료합니다.
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 pro의 Safari 브라우저를 시뮬레이션하는 공식 문서에서 제공하는 코드입니다. 먼저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으로 업데이트되었습니다. 각 세대의 업데이트를 통해 시스템은 더욱 완벽해질 것이며, 이는 모든 사람을 크게 절약할 수 있을 것이라고 믿습니다. 더욱더 좋게.
위 내용은 Microsoft의 Python 초보자 도구는 정말 맛있습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!