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

Verwenden der Selenium -Web -Treiber -API mit Phpunit

William Shakespeare
Freigeben: 2025-02-17 12:20:14
Original
316 Leute haben es durchsucht

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.

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

    public function tearDown()
    {
        $this->webDriver->quit();
    }
    Nach dem Login kopieren
  4. Form Wechselwirkung: Die fillFormAndSubmit() -Methode verwendet findElement() mit WebDriverBy, um Formularelemente zu lokalisieren und mit ihnen zu interagieren.

    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();
    }
    Nach dem Login kopieren
  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:

    /**
     * @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
    }
    Nach dem Login kopieren

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:

    $this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");
    Nach dem Login kopieren
  2. Warten auf Elemente: Die wait() -Methode mit until() oder WebDriverExpectedCondition verarbeitet eine asynchrone Seite. Laden Sie:

    $this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));
    Nach dem Login kopieren
  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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage