Grundlegendes Tutorial für Dramatiker

Dramatiker

einführen

Playwright ist ein von Microsoft entwickeltes automatisiertes Testtool, mit dem Webanwendungen getestet werden können. Es unterstützt mehrere Programmiersprachen und mehrere Browser, darunter Chrome, Firefox und WebKit. Es bietet eine Reihe von APIs, die es Entwicklern ermöglichen, Benutzeraktionen im Browser zu simulieren, z. B. Klicken, Texteingabe und Navigieren zu verschiedenen Seiten, und gleichzeitig Screenshots und Videos aufzunehmen.

Zu den Hauptfunktionen von Playwright gehören:

  1. Browserübergreifende Unterstützung: Playwright unterstützt mehrere Browser, darunter Chrome, Firefox und WebKit. Dies bedeutet, dass Entwickler automatisierte Tests in verschiedenen Browsern durchführen können, ohne den Testcode zu ändern.

  2. Mehrsprachige Unterstützung: Playwright unterstützt mehrere Programmiersprachen, darunter JavaScript, TypeScript, Python und Java. Dadurch können Entwickler automatisierte Tests in ihrer bevorzugten Sprache schreiben.

  3. Integrierter Wartemechanismus: Playwright verfügt über einen integrierten Wartemechanismus, der automatisch auf das Laden von Seiten, Netzwerkanfragen und die Sichtbarkeit von Elementen wartet. Dadurch können Entwickler stabilere Tests schreiben, ohne manuell Wartezeiten hinzufügen zu müssen.

  4. Screenshots und Videoaufnahmen: Playwright kann Screenshots und Videoaufnahmen erstellen. Dies ist sehr nützlich zum Debuggen von Testfehlern und kann Entwicklern dabei helfen, Probleme schneller zu finden.

  5. Schnelle Ausführung: Playwright basiert auf dem Chrome DevTools-Protokoll und kann die Funktionen des Chrome DevTools-Protokolls nutzen.

Playwright kann in verschiedenen Browser-Automatisierungsszenarien verwendet werden, einschließlich Tests, Crawling, Data Mining und Automatisierungsaufgaben. Es bietet vollständige Kontrolle über den Browser, einschließlich der Seiten- und Netzwerkebenen des Browsers, sodass Entwickler Benutzervorgänge und -interaktionen detaillierter steuern und simulieren können. Im Testbereich zeichnet sich Playwright durch Schnelligkeit, Zuverlässigkeit und Skalierbarkeit aus und unterstützt die Ausführung in mehreren Browsern sowie die parallele Ausführung, wodurch die Testeffizienz erheblich verbessert werden kann.

Zusätzlich zu den grundlegenden Browserfunktionen bietet Playwright auch einige erweiterte Funktionen, darunter:

  1. Videoaufzeichnung: Sie können die Bildschirmvorgänge des Browsers aufzeichnen und in Form eines Videos speichern.
  2. Zeitleistenverfolgung: Jede Netzwerkanfrage und jedes DOM-Ereignis des Browsers kann aufgezeichnet und in Form einer Zeitleiste angezeigt werden.
  3. Globale parallele Ausführung: Mehrere Browserinstanzen können gleichzeitig ausgeführt werden, um die Testausführung zu beschleunigen.
  4. Benutzerdefinierte Browserinstanz: Sie können die Startkonfiguration der Browserinstanz anpassen, um die Testanforderungen zu erfüllen.

Grundlegende Verwendung

Geben Sie Text in das Eingabefeld ein

Sie können Methoden verwenden fill(), um Text in Eingabefelder einzugeben. Zum Beispiel:

await page.fill('input[name="username"]', 'testuser')

Dieser Code gibt den Text „testuser“ in das Eingabefeld mit dem Namen „username“ ein.

Klicken Sie auf das Seitenelement

Sie können click()Methoden verwenden, um auf Elemente auf der Seite zu klicken. Zum Beispiel:

await page.click('button[id="submit"]')

Dieser Code klickt auf der Seite auf eine Schaltfläche mit der ID „Senden“.

Wählen Sie eine Option aus der Dropdown-Liste aus

Mit der Methode können Sie selectOption()eine Option aus einer Dropdown-Liste auswählen. Zum Beispiel:

await page.selectOption('select[name="country"]', 'USA')

Dieser Code wählt die Option „USA“ aus der Dropdown-Liste „Land“ aus.

Simulieren Sie Tastatureingaben

Sie können Objekte verwenden keyboard, um Tastatureingaben zu simulieren. Zum Beispiel:

await page.keyboard.type('hello')

Dieser Code fügt den Text „Hallo“ in das aktuell fokussierte Element ein.

Simulieren Sie Mausoperationen

Sie können mouseObjekte verwenden, um Mausoperationen zu simulieren. Zum Beispiel:

await page.mouse.click(100, 100)

Dieser Code klickt mit der Maus bei einer X-Koordinate von 100 und einer Y-Koordinate von 100 auf dem Bildschirm.

Verwendung von Playwright für die Seiteninteraktion

Verwenden Sie Playwright, um einfach mit der Seite zu interagieren, und benötigen Sie nur die folgenden Schritte:

  • Erstellen Sie ein Browserobjekt:from playwright.sync_api import Playwright, sync_playwright_with_timeout; browser_type = sync_playwright_with_timeout().start().chromium; browser = browser_type.launch(headless=True)

  • Erstellen Sie ein Seitenobjekt:page = browser.new_page()

  • Geben Sie eine Seite ein:page.goto('https://www.example.com')

  • Klicken Sie auf ein Element:page.click('#element-id')

  • Text eingeben:page.type('#input-id', 'text')

  • Ausführung anhalten:page.pause()

  • Schließen Sie den Browser:browser.close()

Tatsächliche Demonstration

Hier sind einige einfache Playwright-Demo-Tutorials:

1. Öffnen Sie den Browser

from playwright.sync_api import Playwright, sync_playwright_with_timeout
with sync_playwright_with_timeout() as playwright:
    browser = playwright.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.google.com")
    print(page.title())
    browser.close()

Dieses Beispiel zeigt, wie Sie den Chromium-Browser und die Google-Startseite öffnen. headless=FalseParameter bedeutet, den Browser sichtbar zu starten.

2. Suchen Sie nach Schlüsselwörtern

from playwright.sync_api import Playwright, sync_playwright_with_timeout
with sync_playwright_with_timeout() as playwright:
    browser = playwright.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.google.com")
    page.fill('input[name="q"]', "Python Playwright")
    page.press('input[name="q"]', "Enter")
    results = page.wait_for_selector("#search")
    print(results.text_content())
    browser.close()

Dieses Beispiel zeigt, wie Sie nach Schlüsselwörtern suchen und Suchergebnisse erhalten. page.fill()Die Methode „and“ page.press()wird verwendet, um Schlüsselwörter in das Suchfeld einzugeben und zu übermitteln, und page.wait_for_selector()die Methode wird verwendet, um auf das Laden der Suchergebnisseite und die Rückgabe des Ergebniselements zu warten. results.text_content()Gibt den Textinhalt der Suchergebnisse zurück.

3. Screenshot

from playwright.sync_api import Playwright, sync_playwright_with_timeout
with sync_playwright_with_timeout() as playwright:
    browser = playwright.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.google.com")
    page.screenshot(path="google.png")
    browser.close()

Dieses Beispiel zeigt, wie Sie einen Screenshot einer geöffneten Seite erstellen. page.screenshot()Die Methode wird verwendet, um einen Screenshot der Seite zu erstellen und ihn im angegebenen Pfad zu speichern.

Dies sind einige einfache Demo-Tutorials von Playwright, die Ihnen helfen können, die grundlegende Verwendung von Playwright zu verstehen. Informationen zur erweiterten Verwendung finden Sie in der offiziellen Dokumentation von Playwright: https://playwright.dev/docs/

4. Mehrere Seitensprünge

Diese Demo zeigt, wie Sie zwischen mehreren Seiten navigieren, z. B. nach dem Anmelden zu einer anderen Seite springen.

import asyncio
from playwright.async_api import Playwright, async_playwright

async def navigate_to_another_page(playwright: Playwright):
    # 启动浏览器
    browser = await playwright.chromium.launch(headless=False)
    page = await browser.new_page()

    # 打开第一个页面
    await page.goto('https://example.com')

    # 在第一个页面上点击链接
    await page.click('a')
    # 等待页面加载完成
    await page.wait_for_selector('#second-page')

    # 获取新页面
    pages = await browser.pages()
    new_page = pages[-1]

    # 在新页面上执行操作
    await new_page.fill('#username', 'John Doe')
    await new_page.fill('#password', 'password')
    await new_page.click('#login')

    # 关闭浏览器
    await browser.close()

async with async_playwright() as playwright:
    asyncio.run(navigate_to_another_page(playwright))

4. Datei-Upload

Diese Demo zeigt, wie Sie Datei-Uploads in Playwright simulieren, beispielsweise das Hochladen von Dateien in ein Formular.

import asyncio
from pathlib import Path
from playwright.async_api import Playwright, async_playwright

async def upload_file(playwright: Playwright):
    # 启动浏览器
    browser = await playwright.chromium.launch(headless=False)
    page = await browser.new_page()

    # 打开上传页面
    await page.goto('https://example.com/upload')

    # 选择文件并上传
    file_path = Path('/path/to/file')
    input_element = await page.query_selector('input[type=file]')
    await input_element.set_input_files(str(file_path))
    await page.click('input[type=submit]')

    # 等待页面加载完成
    await page.wait_for_selector('#upload-success')

    # 关闭浏览器
    await browser.close()

async with async_playwright() as playwright:
    asyncio.run(upload_file(playwright))

5. Simulieren Sie mobile Geräte

Diese Demo zeigt, wie Sie mobile Geräte in Playwright simulieren, beispielsweise das Ausführen von Tests in einem mobilen Browser.

import asyncio
from playwright.async_api import Playwright, async_playwright

async def simulate_mobile_device(playwright: Playwright):
    # 启动浏览器
    browser = await playwright.chromium.launch(headless=False)
    context = await browser.new_context(
        **playwright.devices['iPhone 11 Pro'],
        viewport=playwright.devices['iPhone 11 Pro']['viewport']
    )
    page = await context.new_page()

    # 在手机浏览器上打开页面
    await page.goto('https://example.com')

    # 在手机浏览器上执行操作
    await page.fill('#username', 'John Doe')
    await page.fill('#password', 'password')
    await page.click('#login')

    # 关闭浏览器
    await browser.close()

async with async_playwright() as playwright:
    asyncio.run(simulate_mobile_device(playwright))

6. Automatisierte Screenshots

Mit Playwright lassen sich Screenshots sehr einfach automatisieren. Es sind lediglich folgende Schritte erforderlich:

  • Playwright installieren:pip install playwright
  • Erstellen Sie ein Browserobjekt:from playwright.sync_api import Playwright, sync_playwright_with_timeout; browser_type = sync_playwright_with_timeout().start().chromium; browser = browser_type.launch(headless=True)
  • Erstellen Sie ein Seitenobjekt:page = browser.new_page()
  • Geben Sie eine Seite ein:page.goto('https://www.example.com')
  • Erfassen Sie die gesamte Seite:page.screenshot(path='example.png')
  • Schließen Sie den Browser:browser.close()

Vollständiges Codebeispiel:

from playwright.sync_api import Playwright, sync_playwright_with_timeout
# 启动浏览器
browser_type = sync_playwright_with_timeout().start().chromium
browser = browser_type.launch(headless=True)

# 创建页面对象
page = browser.new_page()

# 进入页面并截图
page.goto('https://www.example.com')
page.screenshot(path='example.png')

# 关闭浏览器
browser.close()

7. Verwenden Sie Playwright zum Ausfüllen und Einreichen von Formularen

Das Ausfüllen und Senden von Formularen mit Playwright ist einfach und erfordert nur die folgenden Schritte:

  • Erstellen Sie ein Browserobjekt:from playwright.sync_api import Playwright, sync_playwright_with_timeout; browser_type = sync_playwright_with_timeout().start().chromium; browser = browser_type.launch(headless=True)
  • Erstellen Sie ein Seitenobjekt:page = browser.new_page()
  • Geben Sie eine Seite ein:page.goto('https://www.example.com')
  • Füllen Sie das Formular aus:page.fill('#username', 'myusername')
  • Formular abschicken:page.click('button[type="submit"]')
  • Schließen Sie den Browser:browser.close()

Vollständiges Codebeispiel:

from playwright.sync_api import Playwright, sync_playwright_with_timeout

# 启动浏览器
browser_type = sync_playwright_with_timeout().start().chromium
browser = browser_type.launch(headless=True)

# 创建页面对象
page = browser.new_page()

# 进入页面并填写表单
page.goto('https://www.example.com')
page.fill('#username', 'myusername')

# 提交表单
page.click('button[type="submit"]')

# 关闭浏览器
browser.close()

Ergänzende Zusammenfassung

1. Verwenden Sie die Aufnahmefunktion von Playwright, um automatisch Testskripte zu generieren.

Playwright bietet ein Aufzeichnungstool, das einige Vorgänge im Browser ausführen und automatisch Testskripte generieren kann, wodurch der Zeit- und Arbeitsaufwand für das Schreiben von Testskripten erheblich reduziert werden kann. Informationen zu bestimmten Verwendungsmethoden finden Sie in der offiziellen Dokumentation von Playwright.

2. Verwenden Sie die integrierte Screenshot-Funktion von Playwright, um während des Tests Screenshots aufzunehmen.

Playwright bietet eine integrierte Screenshot-Funktion, mit der jederzeit während des Testvorgangs Screenshots aufgenommen werden können, um die anschließende Problemanalyse und Fehlerbehebung zu erleichtern. Informationen zu bestimmten Verwendungsmethoden finden Sie in der offiziellen Dokumentation von Playwright.

3. Nutzen Sie die Mehrsprachenunterstützung von Playwright, z. B. Python, Java, C# usw.

Playwright bietet mehrsprachige Unterstützung, sodass Sie Testskripte in der Programmiersprache schreiben können, mit der Sie am besten vertraut sind, z. B. Python, Java, C# usw. Informationen zu bestimmten Verwendungsmethoden finden Sie in der entsprechenden Sprachdokumentation in der offiziellen Dokumentation von Playwright.

4. Nutzen Sie die Multi-Browser-Unterstützung von Playwright, z. B. Chrome, Firefox, Edge usw.

Playwright bietet Unterstützung für mehrere Browser. Sie können mehrere Browser zum Ausführen von Testskripten verwenden, z. B. Chrome, Firefox, Edge usw. Informationen zu bestimmten Verwendungsmethoden finden Sie in der offiziellen Dokumentation von Playwright.

5. Verwenden Sie den Headless-Modus von Playwright, um Testskripte in einem Headless-Browser auszuführen.

Playwright bietet einen Headless-Modus, mit dem Testskripte in einem Headless-Browser ausgeführt werden können, wodurch die Testeffizienz erheblich verbessert und der Ressourcenverbrauch beim Ausführen von Testskripten reduziert werden kann. Informationen zu bestimmten Verwendungsmethoden finden Sie in der offiziellen Dokumentation von Playwright.

6. Verwenden Sie die Netzwerkabfangfunktion von Playwright, um verschiedene Netzwerkumgebungen zu simulieren und Netzwerkanforderungen zu testen.

Playwright bietet eine Funktion zum Abfangen von Netzwerken, mit der verschiedene Netzwerkumgebungen simuliert und Netzwerkanforderungen getestet werden können, z. B. die Simulation langsamer Netzwerke, die Simulation von Anforderungsfehlern usw. Informationen zu bestimmten Verwendungsmethoden finden Sie in der offiziellen Dokumentation von Playwright.

7. Nutzen Sie die Mehrseitenunterstützung von Playwright, um komplexe mehrseitige Anwendungen zu testen.

Playwright bietet mehrseitige Unterstützung zum Testen komplexer mehrseitiger Anwendungen, wie z. B. seitenübergreifende Interaktionen, Navigation zwischen Seiten usw. Informationen zu bestimmten Verwendungsmethoden finden Sie in der offiziellen Dokumentation von Playwright.

Ich denke du magst

Origin blog.csdn.net/qq_46158060/article/details/130621770
Empfohlen
Rangfolge