>  기사  >  백엔드 개발  >  Microsoft의 Python 초보자 도구는 정말 맛있습니다!

Microsoft의 Python 초보자 도구는 정말 맛있습니다!

WBOY
WBOY앞으로
2023-04-12 10:55:051346검색

Microsoft의 Python 초보자 도구는 정말 맛있습니다!

안녕하세요 여러분 신인입니다!

최근 G 홈페이지를 방문해보니 마이크로소프트가 떠오르는 프로젝트로 "playwright-python"이라는 프로젝트를 오픈소스화한 것을 발견했습니다.

Microsoft의 Python 초보자 도구는 정말 맛있습니다!

Playwright는 Python 언어를 위한 순수 자동화 도구로, 코드를 작성하지 않고도 단일 API를 통해 Chromium, Firefox 및 WebKit 브라우저를 자동으로 실행하여 자동화 기능을 구현할 수 있습니다.

테스트 도구인 selenium에는 완전한 문서가 있지만 학습 비용이 많이 들기 때문에 초보자가 많이 사용하지 않습니다. 반면에 playwright-python은 단순히 초보자를 위한 인공물입니다.

Playwright는 정말 Python에서 작동하나요? 대답은 '예'입니다. Microsoft는 Python용 Playwright를 사용할 준비가 되어 있습니다. 주요 API 변경이 발생할 수 있습니다. 그러나 그런 일은 일어나지 않을 가능성이 높으며 Microsoft는 새 라이브러리에 대한 사용자 경험이 향상될 것이라는 것을 알고 있는 경우에만 그렇게 할 것이라고 말합니다.

그러나 Microsoft는 Chromium 추적 수집, 적용 범위 보고 등 공급업체별 API의 일부 특수 사례가 아직 지원되지 않음을 상기시킵니다.

1. Playwright 소개

Playwright는 단 하나의 API를 사용하여 Chromium, Firefox 및 WebKit과 같은 주류 브라우저에서 자동화된 작업을 자동으로 수행할 수 있으며 헤드리스 및 헤드리스 모드 모두에서 실행을 지원하는 강력한 Python 라이브러리입니다.

Playwright가 제공하는 자동화 기술은 친환경적이고 강력하며 안정적이고 빠르며 Linux, Mac 및 Windows 운영 체제를 지원합니다.

일부 친구들도 다음과 같이 칭찬했습니다. Python 언어를 위한 순수 자동화 도구로서 이 프로젝트는 코드를 해방하고 자동화 기능을 구현하는 방법을 살펴보겠습니다.

2.

을 사용하여 Playwright 설치 Playwright 설치는 매우 간단하며 두 단계로 해결할 수 있습니다.

安装playwright库
pip install playwright
安装浏览器驱动文件(安装过程稍微有点慢)
python -m playwright install

위의 두 pip 작업은 별도로 설치됩니다.

  • Python3.7 이상이 필요한 Playwright 종속 라이브러리 설치
  • Chromium, Firefox, WebKit 및 기타 브라우저의 드라이버 파일 설치

녹음

당신은 그렇지 않습니다. 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

옵션 의미:

  • -o: 기록된 스크립트를 파일에 저장
  • --target: 스크립트를 생성할 언어를 지정합니다. JS와 Python의 두 가지 유형이 있으며 기본값은 Python
  • -b입니다. : 브라우저 드라이버 지정

예를 들어 baidu.com에서 검색하고 크롬 드라이버를 사용하여 결과를 Python 파일 my.py로 저장하고 싶습니다.

python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com

명령줄을 입력하면 브라우저가 자동으로 열리고 아래와 같이 브라우저의 모든 작업이 자동으로 코드로 변환되는 것을 확인할 수 있습니다.

Microsoft의 Python 초보자 도구는 정말 맛있습니다!

완료 후 자동으로 브라우저를 닫고 생성된 자동화 스크립트를 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 인터페이스도 제공하며 문서는 다음과 같습니다.

  • 링크: https://microsoft.github.io/playwright-python/index.html

Synchronization

아래 샘플 코드: 브라우저 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()

Asynchronous

비동기 작업은 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 플러그인과 함께 사용할 수도 있습니다. 관심이 있다면 직접 사용해 볼 수도 있습니다.

3. 요약

playwright는 다음을 포함하여 기존 자동화 테스트 도구에 비해 많은 장점을 가지고 있습니다.

모든 브라우저 지원

  • Chromium, Firefox 및 WebKit에서 테스트되었습니다. Playwright는 Google Chrome, Microsoft Edge(Chromium 포함), Apple Safari(WebKit 포함) 및 Mozilla Firefox를 포함한 모든 최신 브라우저에 대한 완전한 API를 제공합니다.
  • 크로스 플랫폼 WebKit 테스트. Windows, Linux 및 macOS용 WebKit으로 구축된 Playwright를 사용하여 Apple Safari에서 앱이 어떻게 작동하는지 테스트하세요. 로컬 및 CI에서 테스트되었습니다.
  • 전화기를 테스트해 보세요. 장치 에뮬레이션을 사용하여 모바일 웹 브라우저에서 반응형 웹 애플리케이션을 테스트합니다.
  • 헤더가 없는 것과 헤더가 있는 것. Playwright는 모든 브라우저와 플랫폼에 대해 헤드리스(브라우저 UI 없음) 및 헤드리스(브라우저 UI 포함) 모드를 지원합니다. 헤더 모드는 디버깅에 적합하고, 헤더리스 모드는 CI/클라우드 실행에 적합합니다.

빠르고 안정적인 실행이 가능합니다.

  • 자동 대기 API. 극작가 상호작용은 요소가 준비될 때까지 자동으로 기다립니다. 이는 신뢰성을 향상시키고 테스트 작성 프로세스를 단순화합니다.
  • 시간 초과 자동화가 없습니다. Playwright는 네트워크 요청, 페이지 탐색, 페이지 로드 이벤트와 같은 브라우저 신호를 수신하여 수면 중단으로 인한 불편함을 제거합니다.
  • 브라우저 컨텍스트와 평행을 유지하세요. 여러 병렬로 격리된 브라우저 컨텍스트 실행 환경을 위해 단일 브라우저 인스턴스를 재사용합니다.
  • 성적인 요소 선택기. 극작가는 텍스트 콘텐츠, 접근성 태그 등 사용자에게 표시되는 문자열을 기반으로 요소를 선택할 수 있습니다. 이러한 문자열은 DOM 구조에 긴밀하게 연결된 선택기보다 더 유연합니다.

강력한 자동화 기능

  • 여러 도메인, 페이지 및 프레임. Playwright는 페이지 내 JavaScript 실행 범위에 제한을 받지 않고 여러 페이지로 시나리오를 자동화할 수 있는 프로세스 외 자동화 드라이버입니다.
  • 강력한 네트워크 제어. Playwright는 네트워크 요청을 종료하거나 시뮬레이션하기 위해 컨텍스트 전체 네트워크 차단을 도입했습니다.
  • 최신 웹 기능. Playwright는 선택기, 지리적 위치, 권한, 웹 작업자 및 기타 최신 웹 API가 삽입된 웹 구성 요소를 지원합니다.
  • 모든 시나리오를 다루는 능력. 파일 다운로드 및 업로드, out-of-process iframe, 기본 입력 이벤트 및 다크 모드까지 지원합니다.

그러나 제한 사항도 있습니다.

  • Old Edge 및 IE11 지원. Playwright는 이전 버전의 Microsoft Edge 또는 IE11을 지원하지 않습니다(지원 중단 알림). 새로운 Microsoft Edge(Chromium) 지원.
  • Java 언어 바인딩: Playwright API는 현재 Java 또는 Ruby에서 사용할 수 없습니다. Playwright는 모든 언어에 대한 바인딩을 지원하도록 설계되었으므로 이는 일시적인 제한 사항입니다.
  • 실제 모바일 장치에서 테스트: Playwright는 데스크톱 브라우저를 사용하여 모바일 장치를 시뮬레이션합니다.

몇 가지 제한 사항이 있지만 극작가는 이제 버전 1.7.0으로 업데이트되었습니다. 각 세대의 업데이트를 통해 시스템은 더욱 완벽해질 것이며, 이는 모든 사람을 크게 절약할 수 있을 것이라고 믿습니다. 더욱더 좋게.

위 내용은 Microsoft의 Python 초보자 도구는 정말 맛있습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제