Heim  >  Artikel  >  Backend-Entwicklung  >  Dieses von Microsoft erstellte Python-Tool für Anfänger ist so lecker!

Dieses von Microsoft erstellte Python-Tool für Anfänger ist so lecker!

WBOY
WBOYnach vorne
2023-04-12 10:55:051388Durchsuche

Dieses von Microsoft erstellte Python-Tool für Anfänger ist so lecker!

Hallo zusammen, ich bin ein Neuling!

Ich habe kürzlich die G-Website besucht und festgestellt, dass Microsoft ein Open-Source-Projekt namens „playwright-python“ als aufstrebendes Projekt veröffentlicht hat.

Dieses von Microsoft erstellte Python-Tool für Anfänger ist so lecker!

Playwright ist ein reines Automatisierungstool für die Python-Sprache. Es kann Chromium-, Firefox- und WebKit-Browser automatisch über eine einzige API ausführen, ohne Code zu schreiben, um Automatisierungsfunktionen zu erreichen.

Obwohl das Testtool Selenium über eine vollständige Dokumentation verfügt, schreckt sein Lernaufwand viele Anfänger ab. Im Gegensatz dazu ist Playwright-Python lediglich ein Artefakt für Anfänger.

Funktioniert Playwright wirklich mit Python? Die Antwort lautet: Ja, Microsoft ist mit Playwright für Python bereit. Es kann zu bahnbrechenden API-Änderungen kommen. Aber die Chancen stehen gut, dass das nicht passieren wird, und Microsoft sagt, dass es dies nur tun wird, wenn man weiß, dass es Ihr Erlebnis mit der neuen Bibliothek verbessern wird.

Microsoft weist jedoch auch darauf hin, dass einige Eckfälle herstellerspezifischer APIs noch nicht unterstützt werden, z. B. das Sammeln von Chromium-Tracking, Abdeckungsberichten usw.

1. Einführung in Playwright

Playwright ist eine leistungsstarke Python-Bibliothek, die mit nur einer API automatisch automatisierte Vorgänge in Mainstream-Browsern wie Chromium, Firefox und WebKit ausführen kann und die Ausführung sowohl im Headless- als auch im Headless-Modus unterstützt.

Die von Playwright bereitgestellte Automatisierungstechnologie ist umweltfreundlich, leistungsstark, zuverlässig und schnell und unterstützt Linux-, Mac- und Windows-Betriebssysteme.

Einige Freunde lobten dies auch: Als reines Automatisierungstool für die Python-Sprache befreit dieses Projekt den Code und realisiert Automatisierungsfunktionen.

2. Installieren Sie Playwright mit

Die Installation von Playwright ist sehr einfach und kann in zwei Schritten durchgeführt werden.

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

Die beiden oben genannten Pip-Vorgänge werden separat installiert:

  • Installieren Sie die Playwright-Abhängigkeitsbibliothek, die Python3.7+ erfordert.
  • Installieren Sie die Treiberdateien von Chromium, Firefox, WebKit und anderen Browsern. Um Playwright zu verwenden, müssen wir keine Codezeile schreiben. Wir müssen lediglich den Browser manuell bedienen. Er zeichnet unsere Vorgänge auf und generiert dann automatisch Codeskripte.
Das Folgende ist der aufgezeichnete Befehlscodegen, nur eine Zeile.

命令行键入 --help 可看到所有选项
python -m playwright codegen

Die Verwendung von Codegen kann mit --help angezeigt werden. Wenn es einfach zu verwenden ist, fügen Sie einfach den URL-Link direkt nach dem Befehl hinzu. Wenn Sie andere Anforderungen haben, können Sie Optionen hinzufügen.

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

Optionsbedeutung:

-o: Speichern Sie das aufgezeichnete Skript in einer Datei

--target: Geben Sie die Sprache zum Generieren des Skripts an. Es gibt zwei Typen: JS und Python. Der Standardwert ist Python

    -b : Geben Sie den Browser-Treiber an
  • Ich möchte beispielsweise auf baidu.com suchen, den Chromium-Treiber verwenden und die Ergebnisse als Python-Datei my.py speichern.
  • python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com
  • Nach der Eingabe der Befehlszeile wird der Browser automatisch geöffnet und Sie können sehen, dass jede Aktion im Browser automatisch in Code übersetzt wird, wie unten gezeigt.

Schließen Sie den Browser nach Abschluss automatisch und speichern Sie das generierte Automatisierungsskript in einer PY-Datei.

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

Darüber hinaus stellt Playwright auch synchrone und asynchrone API-Schnittstellen bereit, die Dokumente lauten wie folgt. Dieses von Microsoft erstellte Python-Tool für Anfänger ist so lecker!

Link: https://microsoft.github.io/playwright-python/index.html

Synchronisation
  • Beispielcode unten: Öffnen Sie nacheinander drei Browser, gehen Sie zur Baidu-Suche, machen Sie einen Screenshot und beenden Sie den Vorgang.
  • 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()
Asynchron

Asynchrone Vorgänge können mit asyncio kombiniert werden, um drei Browser-Vorgänge gleichzeitig auszuführen.

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())

Mobile Version

Was noch erstaunlicher ist, ist, dass Playwright auch die Simulation mobiler Browser unterstützen kann. Im Folgenden finden Sie einen im offiziellen Dokument bereitgestellten Code, der den Safari-Browser auf dem iPhone 11 Pro an einem bestimmten geografischen Standort simuliert. Navigieren Sie zunächst zu „maps.google.com“, führen Sie dann eine Positionierung durch und machen Sie einen Screenshot.

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()

Darüber hinaus kann es auch mit dem Pytest-Plugin verwendet werden. Wenn Sie interessiert sind, können Sie es selbst ausprobieren.

3. Zusammenfassung

playwright bietet viele Vorteile gegenüber bestehenden automatisierten Testtools, darunter:

Unterstützt alle Browser

  • Getestet auf Chromium, Firefox und WebKit. Playwright verfügt über eine vollständige API-Abdeckung für alle modernen Browser, einschließlich Google Chrome und Microsoft Edge (mit Chromium), Apple Safari (mit WebKit) und Mozilla Firefox.
  • Plattformübergreifende WebKit-Tests. Testen Sie mit Playwright, erstellt mit WebKit für Windows, Linux und macOS, wie sich Ihre App in Apple Safari verhält. Lokal und auf CI getestet.
  • Testen Sie das Telefon. Testen Sie Ihre reaktionsfähigen Webanwendungen in mobilen Webbrowsern mithilfe der Geräteemulation.
  • Ohne Header und mit Header. Playwright unterstützt Headless- (keine Browser-UI) und Headless-Modi (mit Browser-UI) für alle Browser und alle Plattformen. Der Header-Modus eignet sich zum Debuggen, während der Headerless-Modus für die CI-/Cloud-Ausführung geeignet ist.

Hat eine schnelle und zuverlässige Ausführung.

  • Auto-Wait-APIs. Dramatiker-Interaktionen warten automatisch, bis das Element fertig ist. Dies verbessert die Zuverlässigkeit und vereinfacht den Testschreibprozess.
  • Keine Timeout-Automatisierung. Playwright empfängt Browsersignale wie Netzwerkanfragen, Seitennavigation und Seitenladeereignisse, um die Belästigung durch unterbrochenen Schlaf zu vermeiden.
  • Bleiben Sie parallel zum Browserkontext. Verwenden Sie eine einzelne Browserinstanz für mehrere parallele, isolierte Browserkontextumgebungen wieder.
  • Auswahl für sexuelle Elemente. Playwright kann Elemente auswählen, die auf benutzerbezogenen Zeichenfolgen wie Textinhalten und Barrierefreiheits-Tags basieren. Diese Zeichenfolgen sind flexibler als Selektoren, die eng an die DOM-Struktur gekoppelt sind.

Mit leistungsstarken Automatisierungsfunktionen

  • Mehrere Domänen, Seiten und Frames. Playwright ist ein Out-of-Process-Automatisierungstreiber, der nicht durch den Umfang der JavaScript-Ausführung innerhalb einer Seite eingeschränkt ist und Szenarien mit mehreren Seiten automatisieren kann.
  • Leistungsstarke Netzwerksteuerung. Playwright führt kontextweite Netzwerküberwachung ein, um Netzwerkanforderungen zu beenden oder zu simulieren.
  • Moderne Webfunktionen. Playwright unterstützt Webkomponenten durch eingefügte Selektoren, Geolokalisierung, Berechtigungen, Web-Worker und andere moderne Web-APIs.
  • Fähigkeit, alle Szenarien abzudecken. Unterstützt Datei-Downloads und -Uploads, Out-of-Process-Iframes, native Eingabeereignisse und sogar den Dunkelmodus.

Aber es gibt auch Einschränkungen

  • Old Edge und IE11-Unterstützung. Playwright unterstützt keine älteren Versionen von Microsoft Edge oder IE11 (Veraltungshinweis). Unterstützung für das neue Microsoft Edge (auf Chromium).
  • Java-Sprachbindung: Die Playwright-API ist derzeit nicht in Java oder Ruby verfügbar. Dies ist eine vorübergehende Einschränkung, da Playwright darauf ausgelegt ist, Bindungen für jede Sprache zu unterstützen.
  • Test auf echten Mobilgeräten: Playwright verwendet einen Desktop-Browser, um Mobilgeräte zu simulieren.

Obwohl es einige Einschränkungen gibt, wurde Playwright jetzt auf Version 1.7.0 aktualisiert. Mit jeder Aktualisierungsgeneration wird das System perfekter. Als Einsteiger-Tool ist es unserer Meinung nach für die Zukunft so wertvoll immer besser.

Das obige ist der detaillierte Inhalt vonDieses von Microsoft erstellte Python-Tool für Anfänger ist so lecker!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen