Heim >Backend-Entwicklung >PHP-Problem >So richten Sie eine Selenium-PHP-Umgebung ein

So richten Sie eine Selenium-PHP-Umgebung ein

藏色散人
藏色散人Original
2022-11-06 10:27:421536Durchsuche

Einrichtungsmethode für die Selenium PHP-Umgebung: 1. Laden Sie die neueste Thread-sichere Version des PHP-Zip-Pakets herunter. 2. Kopieren Sie eine Kopie von „php.ini-development“, benennen Sie sie in „php.ini“ um und fügen Sie sie in die Installation ein path; 3. Systemvariablen festlegen Der folgende Pfad ist „D:Softwarephp-7.2.28-Win32-VC15-x64;“.

So richten Sie eine Selenium-PHP-Umgebung ein

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.

Wie richte ich eine Selenium-PHP-Umgebung ein?

PHP+Selenium-Umgebungsaufbau in einer Windows-Umgebung

Ich wollte vor kurzem auch mit der Verwendung von Codeception für Unit-Tests und Schnittstellentests beginnen. Für den UI-Testteil habe ich mich für Selenium entschieden Lassen Sie uns als nächstes die entsprechenden Umgebungen erstellen.

  • Erstellen einer PHP-Umgebung

1. Geben Sie die PHP-Download-Adresse http://windows.php.net/download ein, um die neueste threadsichere Version des komprimierten PHP-Zip-Pakets herunterzuladen, zu dekomprimieren und im Pfad abzulegen Sie installieren möchten. (Hier ist zu beachten, dass das Win7-System die PHP7.4-Version nicht verwenden kann und angezeigt wird, dass VCRUNTIME140.dll fehlt.)

2. Geben Sie das PHP-Installationsverzeichnis ein und kopieren Sie eine Kopie von php.ini-development und benennen Sie es in php.ini um und fügen Sie es ein. Öffnen Sie unter dem Installationspfad ;extension_dir=ext und suchen Sie, entfernen Sie die Kommentare und ändern Sie den Wert in PHP-Installationspfad ext.

3. Klicken Sie mit der rechten Maustaste auf Computer->Eigenschaften->Erweiterte Systemeinstellungen->Umgebungsvariablen->Pfad unter Systemvariablen, klicken Sie auf Bearbeiten und fügen Sie den PHP-Pfad D:Softwarephp-7.2.28-Win32-VC15 hinzu -x64;

An diesem Punkt ist die PHP-Installation abgeschlossen. Sie können cmd öffnen, um die entsprechende Version anzuzeigen:

  • Erstellen der Java-Laufumgebung Die Selenium-Laufdatei ist ein JAR-Paket und Sie müssen es in einer guten Java-Laufumgebung erstellen.

Betreten Sie die offizielle Website https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, suchen Sie die angepasste Version und laden Sie JDK herunter.

  • Laden Sie die Selenium-Datei herunter: http://selenium-release.storage.googleapis.com/index.html (Selenium-Download-Adresse) Laden Sie die JAR-Paketdatei von Selenium-Server-Standalone-3.8.0 herunter. jar, Sie können die Version selbst auswählen

  • Laden Sie die Browser-Treiberdatei herunter (Hinweis hier: Stellen Sie sicher, dass Sie die Treiberdatei herunterladen, die der auf Ihrem Computer installierten Browserversion entspricht). Der vom Google-Browser verwendete Treiberdateiname lautet: chromedriver, https://chromedriver.storage.googleapis.com/index.html (Download-Adresse des Chrome-Treibers). Der Treiberdateiname von Firefox lautet: geckodriver.exe, https://docs.seleniumhq.org/download/ (Gehen Sie zum Herunterladen zur offiziellen Selenium-Website und wählen Sie Java aus.)

Für die entsprechende Version von Chrom und Chromedriver können Sie dies tun Überprüfen Sie die Hinweise in jeder Version. Die Chrome-Versionsnummer kann über chrome://settings/help angezeigt werden. Hinweis: Die heruntergeladene Treiberdatei muss im Stammverzeichnis von PHP abgelegt werden

Laden Sie die Demo der PHP+Selenium-Datei herunter, https://github.com/facebook/php-webdriver (in der Testdatei finden Sie example.php und Falldokumente als Referenz).

Nachdem Sie die Demo geschrieben haben, können Sie sie zunächst testen. Führen Sie die heruntergeladene Selenium-JAR-Paketdatei aus, geben Sie in der cmd-Befehlszeile das Verzeichnis ein, in dem Sie die Selenium-Datei abgelegt haben, und führen Sie dann den folgenden Befehl aus (Hinweis: Er muss konfiguriert werden Im zweiten Schritt werden Java-Umgebungsvariablen ausgeführt) java -jar selenium-server-standalone-3.8.0.jar. Wenn die folgende Eingabeaufforderung in Ihrer Befehlszeile erscheint, bedeutet dies, dass der Start erfolgreich war.

Beim Ausführen von example.php, Hinweis: Undefinierter Index: ELEMENT in D:testvendorfacebookwebdriverlibRemoteRemoteWebDriver.php in Zeile 178,

    Nach der Untersuchung wurde dies durch Änderungen im Kommunikationsprotokoll der neueren Version von Selenium verursacht. Zugehörige Parametersteuerung kann beim Start hinzugefügt werden:
  • java -jar selenium-server-standalone-3.8.0.jar -enablePassThrough false至此,通过编写example.php文件便可实现简单的自动登录流程。
  • Bevor Sie exam.php ausführen, müssen Sie das Vendor-Verzeichnis unter ekwing in das phpDirver-Verzeichnis kopieren
  • Sie können example.php ändern, um beispielsweise eine automatische Anmeldung bei anderen Websites zu realisieren. PHP lautet wie folgt:
  • <?php
    // An example of using php-webdriver.
    // Do not forget to run composer install before. You must also have Selenium server started and listening on port 4444.namespace Facebook\WebDriver;use Facebook\WebDriver\Remote\DesiredCapabilities;use Facebook\WebDriver\Remote\RemoteWebDriver;require_once(&#39;vendor/autoload.php&#39;);// This is where Selenium server 2/3 listens by default. For Selenium 4, Chromedriver or Geckodriver, use http://localhost:4444/$host = &#39;http://localhost:4444/wd/hub&#39;;$capabilities = DesiredCapabilities::chrome();$driver = RemoteWebDriver::create($host, $capabilities);$driver->manage()->window()->maximize();// navigate to Selenium page on Wikipedia$driver->get(&#39;http://www.baidu.com/Login/s?name=lzxx&#39;);// write &#39;PHP&#39; in the search box$driver->findElement(WebDriverBy::id(&#39;name&#39;)) // find search input element->sendKeys(&#39;xxxx&#39;); // fill the search box$driver->findElement(WebDriverBy::id(&#39;xxxx&#39;))    ->sendKeys(&#39;88888888&#39;);//$driver->submit(); // submit the whole form
    
    // wait until &#39;PHP&#39; is shown in the page heading element
    //$driver->wait()->until(
    //    WebDriverExpectedCondition::elementTextContains(WebDriverBy::id(&#39;firstHeading&#39;), &#39;PHP&#39;)
    //);
    
    // print title of the current page to outputecho "The title is &#39;" . $driver->getTitle() . "&#39;\n";// print URL of current page to outputecho "The current URL is &#39;" . $driver->getCurrentURL() . "&#39;\n";// find element of &#39;History&#39; item in menu
    //$historyButton = $driver->findElement(
    //    WebDriverBy::cssSelector(&#39;#jsLoginBtn&#39;)
    //);$historyButton = $driver->findElement(
        WebDriverBy::id(&#39;jsLoginBtn&#39;)
    );// read text of the element and print it to outputecho "About to click to button with text: &#39;" . $historyButton->getText() . "&#39;\n";// click the element to navigate to revision history page$historyButton->click();// wait until the target page is loaded$driver->wait()->until(
        WebDriverExpectedCondition::titleContains(&#39;教师首页&#39;)
    );// print the title of the current pageecho "The title is &#39;" . $driver->getTitle() . "&#39;\n";// print the URI of the current pageecho "The current URI is &#39;" . $driver->getCurrentURL() . "&#39;\n";// delete all cookies
    //$driver->manage()->deleteAllCookies();
    
    // add new cookie$cookie = new Cookie(&#39;cookie_set_by_selenium&#39;, &#39;cookie_value&#39;);$driver->manage()->addCookie($cookie);// dump current cookies to output$cookies = $driver->manage()->getCookies();print_r($cookies);$driver->get(&#39;http://www.ekwing.com/exam/teacher/selflist&#39;);// close the browser
    //$driver->quit();
Exkurs: Da Selenium das integrierte Framework der PHP-Sprache nicht unterstützt, müssen wir die verschiedenen Skripte selbst kombinieren, wenn wir Selenium zum Durchführen von Funktionstests im Projekt verwenden möchten, was fast dem Schreiben ähnelt ein Rahmen.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo richten Sie eine Selenium-PHP-Umgebung ein. 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