Heim >Backend-Entwicklung >PHP-Tutorial >Verwenden der Selenium -Web -Treiber -API mit Phpunit

Verwenden der Selenium -Web -Treiber -API mit Phpunit

William Shakespeare
William ShakespeareOriginal
2025-02-17 12:20:14328Durchsuche

In diesem Artikel wird das Webdriver -Paket von Facebook für die Browseremulation in PHP untersucht und auf einem früheren Artikel (hier nicht enthalten) mit Selenium mit Phpunit erstellt. Es konzentriert sich auf Akzeptanztests und Automatisierung von Browser -Interaktionen.

Using the Selenium Web Driver API with PHPUnit

Schlüsselunterschiede von der Selenium -Erweiterung von Phpunit:

  • WebDriver von Facebook erfordert einen manuellen Browser -Sitzungsverschluss mit tearDown() im Gegensatz zum automatischen Handling von Phpunit.
  • nutzt die RemoteWebDriver -Kläufe für die Selenium -Server -Interaktion.

Implementierungsschritte:

  1. Installation: Verwenden Sie den Komponisten, um das Facebook -Webdriver -Paket zu installieren: composer require facebook/webdriver --dev

  2. Testklassen -Setup: Erstellen Sie eine Phpunit -Testklasse (z. B. UserSubscriptionTestFB.php) PHPUnit_Framework_TestCase. Die setUp() -Methode initialisiert die RemoteWebDriver -Schelle, die die Selenium -Serveradresse (http://localhost:4444/wd/hub standardmäßig) und die gewünschten Browserfunktionen (z. B. Firefox oder Chrom) angeben.

    <code class="language-php">public function setUp()
    {
        $this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::firefox());
    }</code>
  3. Browserverschluss: Die tearDown() -Methode ist entscheidend, um die Browser -Sitzung nach jedem Test zu schließen:

    <code class="language-php">public function tearDown()
    {
        $this->webDriver->quit();
    }</code>
  4. Form Wechselwirkung: Die fillFormAndSubmit() -Methode verwendet findElement() mit WebDriverBy, um Formularelemente zu lokalisieren und mit ihnen zu interagieren.

    <code class="language-php">public function fillFormAndSubmit($inputs)
    {
        $this->webDriver->get('http://vaprobash.dev/'); // Replace with your URL
        $form = $this->webDriver->findElement(WebDriverBy::id('subscriptionForm')); // Replace with your form ID
    
        foreach ($inputs as $input => $value) {
            $form->findElement(WebDriverBy::name($input))->sendKeys($value);
        }
    
        $form->submit();
    }</code>
  5. Testfälle: Testmethoden verwenden Datenanbieter (aus dem vorherigen Artikel angenommen), um Testeingänge zu liefern. Behauptungen überprüfen die erwarteten Ergebnisse (Erfolgs- oder Fehlermeldungen). Beispiel:

    <code class="language-php">/**
     * @dataProvider validInputsProvider
     */
    public function testValidFormSubmission(array $inputs)
    {
        $this->fillFormAndSubmit($inputs);
        $content = $this->webDriver->findElement(WebDriverBy::tagName('body'))->getText();
        $this->assertEquals('Everything is Good!', $content); // Replace with your success message
    }</code>

Using the Selenium Web Driver API with PHPUnit

Using the Selenium Web Driver API with PHPUnit

  1. Screenshot Capture: Die takeScreenshot() -Methode ermöglicht das Erfassen von Screenshots während der Testausführung:

    <code class="language-php">$this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");</code>
  2. Warten auf Elemente: Die wait() -Methode mit until() oder WebDriverExpectedCondition verarbeitet eine asynchrone Seite. Laden Sie:

    <code class="language-php">$this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));</code>
  3. Erweiterte Interaktionen: Der Artikel umfasst fortgeschrittenere Interaktionen wie Drag-and-Drop, Alarmhandhabung und Tastaturverknüpfungen.

  4. Kopflosen Tests: In dem Artikel wird erläutert, wie XVFB (x Virtual FrameBuffer) für kopflose Browser -Tests auf Systemen ohne grafische Anzeige verwendet werden. Beide Methoden (Ausführen von XVFB separat und xvfb-run) sind detailliert.

    Using the Selenium Web Driver API with PHPUnit Using the Selenium Web Driver API with PHPUnit

Nützliche Links (aus Original wiederholt):

Der Artikel schließt mit der Betonung des breiteren Dienstprogramms von Selen über das Testen, einschließlich der Browser -Automatisierungsaufgaben. Ein FAQ -Abschnitt enthält weitere Anleitungen zu Installation, grundlegenden Tests, Ausnahmebehandlung, Behauptungen, Browserauswahl, Elementinteraktion, Warten auf Elemente, Screenshot -Erfassung, Warnmeldung und parallele Testausführung.

Das obige ist der detaillierte Inhalt vonVerwenden der Selenium -Web -Treiber -API mit Phpunit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn