Das stärkste Python-Automatisierungsartefakt, Dramatiker

Ich glaube, dass Freunde, die Crawler gespielt haben, Selenium kennen, ein Artefakt-Tool für automatisierte Tests. Das Schreiben eines Python-Automatisierungsskripts, um Ihre Hände frei zu haben, ist im Grunde ein Routinevorgang. Wenn der Crawler nicht crawlen kann, können Sie ihn mithilfe automatisierter Tests zusammenstellen.
Obwohl Selenium über eine vollständige Dokumentation verfügt, erfordert es auch einen gewissen Lernaufwand und es gibt immer noch einige Schwellenwerte für einen reinen Anfänger.
Kürzlich hat Microsoft ein Open-Source-Projekt namens „playwright-python“ veröffentlicht, das einfach eine Festung ist! Dieses Projekt ist ein reines Automatisierungstool für die Python-Sprache, das eine Automatisierung realisieren kann, ohne Code zu schreiben.
Sie finden es vielleicht etwas unglaublich, aber es ist so kraftvoll. Schauen wir uns dieses Artefakt gemeinsam an.

1. Einführung in den Dramatiker

Playwright ist eine leistungsstarke Python-Bibliothek, die mit nur einer API automatisch gängige Browser-Automatisierungsvorgänge wie Chromium, Firefox und WebKit ausführen kann und gleichzeitig die Ausführung im Headless-Modus und im Headed-Modus unterstützt.
Die von Playwright bereitgestellte Automatisierungstechnologie ist umweltfreundlich, leistungsstark, zuverlässig und schnell und unterstützt Linux-, Mac- und Windows-Betriebssysteme.

2. Verwendung als Dramatiker

Playwright installieren
Die Installation ist sehr einfach, zwei Schritte.
# Installieren Sie die Playwright-Bibliothek pip install playwright
# Installieren Sie die Browser-Treiberdatei (der Installationsprozess ist etwas langsam)
python -m playwright install

Die beiden oben genannten Pip-Vorgänge werden separat installiert:
Um die Playwright-abhängige Bibliothek zu installieren, ist Python3.7+ erforderlich,
um die Treiberdateien von Chromium, Firefox, WebKit und anderen Browsern zu installieren

### Aufzeichnung

Für die Verwendung von Playwright ist es nicht erforderlich, eine Codezeile zu 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 Codegen-Befehl, nur eine Zeile.
# Geben Sie --help in die Befehlszeile ein, um alle Optionen anzuzeigen.
python -m playwright codegen
Die Codegen-Nutzung 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
Verwendung: index codegen [Optionen] [URL]

Seite öffnen und Code für Benutzeraktionen generieren

Optionen:
  -o, --output <Dateiname> speichert das generierte Skript in einer Datei
  --target <Sprache> zu verwendende Sprache, eines von Javascript, Python, Python-Async, CSharp (Standard: „Python“)
  -h, --help zeigt Hilfe für den Befehl an

Beispiele:
  $ codegen
  $ codegen --target=python
  $ -b webkit codegen https://example.com

Bedeutung der Optionen:
-o: Speichern des aufgezeichneten Skripts in einer Datei
–target: Gibt die Sprache zum Generieren des Skripts an. Es gibt zwei Arten von JS und Python. Der Standardwert ist Python.
-b: Geben Sie den Browsertreiber an

Ich möchte beispielsweise auf baidu.com suchen, den Chromium-Treiber verwenden und das Ergebnis als Python-Datei my.py speichern.
python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com
Der Browser wird automatisch geöffnet, nachdem die Befehlszeile eingegeben wurde, und Sie können dann jede Bewegung auf dem sehen Der Browser wird wie unten gezeigt automatisch in Code übersetzt.
Nach dem Ende wird der Browser automatisch geschlossen und das generierte Automatisierungsskript in einer py-Datei gespeichert.

von playwright import sync_playwright

def run(playwright):
    browser = playwright.chromium.launch(headless=False)
    context = browser.newContext()

    # Neue Seite öffnen
    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\"")
  
    # Klicken Sie auf //a[normalize-space(.)='Die offizielle Website von JD.COM ist schneller, besser und wirtschaftlicher, nur für Lebensqualität']
    mit page.expect_navigation():
        mit page.expect_popup() als popup_info:
            page.click("//a[normalize-space(.)='Die offizielle Website von JD.COM ist schneller, besser und wirtschaftlicher, nur für die Lebensqualität.'] ")
        page1 = popup_info.value
    # - --------------------
    context.close()
    browser.close()

mit sync_playwright() als Dramatiker:
    run(playwright)

Synchronisieren

Der Beispielcode unten: Öffnen Sie nacheinander drei Browser, gehen Sie zur Suche zu Baidu, machen Sie einen Screenshot und beenden Sie den Vorgang.

von playwright import sync_playwright

mit sync_playwright() als p:
    für 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.

Asyncio
von Playwright importieren, Async_playwright importieren

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/')
            Warten auf page.screenshot(path=f'example-{browser_type.name}.png')
            Warten auf browser.close()

asyncio.get_event_loop().run_until_complete(main())

mobiles Endgerät

Darüber hinaus kann Playwright auch die Simulation mobiler Browser unterstützen. Das Folgende ist ein im offiziellen Dokument bereitgestellter Code, der den Safari-Browser auf dem Mobiltelefon 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.

von playwright import sync_playwright

mit sync_playwright() als 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 },
        Berechtigungen=['geolocation']
    )
    page = context.newPage()
    page.goto('https://maps.google.com')
    page.click( 'text="Ihr Standort"')
    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

Im Vergleich zu bestehenden automatisierten Testtools bietet Playwright viele Vorteile, wie zum Beispiel:
browserübergreifend, Unterstützung für Chromium, Firefox,
betriebssystemübergreifendes WebKit, Unterstützung für Linux, Mac, Windows,
kann die Funktion zum Aufzeichnen und Generieren von Code kostenlos bereitstellen Ihre Hände und
können auf mobilen Endgeräten verwendet werden
. Der Nachteil besteht darin, dass die Ökologie und Dokumentation nicht sehr vollständig sind, z. B. keine API-Chinesisch-Dokumentation, keine guten Tutorials und Beispiele zum Lernen. Aber ich glaube, dass die Zukunft immer besser wird, je mehr Menschen davon erfahren.
 

Acho que você gosta

Origin blog.csdn.net/qq_30273575/article/details/132204420
Recomendado
Clasificación