Verwenden der Selenium -Web -Treiber -API mit Phpunit
Feb 17, 2025 pm 12:20 PMIn 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.
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:
-
Installation: Verwenden Sie den Komponisten, um das Facebook -Webdriver -Paket zu installieren:
composer require facebook/webdriver --dev
-
Testklassen -Setup: Erstellen Sie eine Phpunit -Testklasse (z. B.
UserSubscriptionTestFB.php
)PHPUnit_Framework_TestCase
. DiesetUp()
-Methode initialisiert dieRemoteWebDriver
-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 -
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 -
Form Wechselwirkung: Die
fillFormAndSubmit()
-Methode verwendetfindElement()
mitWebDriverBy
, 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 -
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
-
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 -
Warten auf Elemente: Die
wait()
-Methode mituntil()
oderWebDriverExpectedCondition
verarbeitet eine asynchrone Seite. Laden Sie:$this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));
Nach dem Login kopieren -
Erweiterte Interaktionen: Der Artikel umfasst fortgeschrittenere Interaktionen wie Drag-and-Drop, Alarmhandhabung und Tastaturverknüpfungen.
-
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.
Nützliche Links (aus Original wiederholt):
- https://www.php.cn/link/5847ac0c8efb8552d1b7c42a4c3f2418
- https://www.php.cn/link/676bc6cef834fe54277b1954f6cd4c5c
- https://www.php.cn/link/f31bad5d6425dd6d172c786a1bffe4a7
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

6 zusätzliche Fähigkeiten, die jeder PHP -Entwickler haben sollte

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

12 Beste PHP -Chat -Skripte auf Codecanyon

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs
