ホームページ > バックエンド開発 > PHPの問題 > Selenium PHP環境のセットアップ方法

Selenium PHP環境のセットアップ方法

藏色散人
リリース: 2023-03-17 11:48:01
オリジナル
1529 人が閲覧しました

Selenium PHP 環境のセットアップ方法: 1. 最新のスレッドセーフ バージョンの PHP zip 圧縮パッケージをダウンロードします; 2. 「php.ini-development」のコピーをコピーし、名前を「php.ini」に変更します。インストール パスに配置します; 3. システム変数のパスを「D:\Software\php-7.2.28-Win32-VC15-x64;」に設定します。

Selenium PHP環境のセットアップ方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

Selenium php 環境をセットアップするにはどうすればよいですか?

Windows 環境での PHP Selenium 環境構築

最近自動テストを始めたいと思っていて、単体テストやインターフェースに codeception を使うことについても書きましたテスト、UI テスト部分には Selenium フレームワークを選択し、関連する環境をセットアップします。

  • PHP 環境の構築

1. PHP ダウンロード アドレス http://windows.php.net/download に移動して、最新のスレッド セーフ バージョンの PHP をダウンロードします。 PHP zip パッケージを解凍し、圧縮してインストールするパスに配置します。 (ここで、win7 システムは php7.4 バージョンを使用できず、VCRUNTIME140.dll が見つからないというメッセージが表示されることに注意してください)

2. PHP インストール ディレクトリに入り、 のコピーを作成します。 php.ini-development 名前の変更 インストール パスに php.ini を配置し、それを開いて ;extension_dir=ext を見つけ、コメント文字を削除し、値を # に変更します。 ##PHP インストール パス\ext

3. [コンピューター] -> [プロパティ] -> [システムの詳細設定] -> [環境変数] -> [システム環境変数] の下の [パス] を右クリックし、[編集] をクリックして、PHP パス D:\Software\php - を追加します。 7.2.28-Win32-VC15-x64;

この時点で、PHP のインストールは完了しました。図に示すように、cmd を開いて対応するバージョンを表示できます。

#Java 実行環境の構築 Selenium 実行ファイルは jar パッケージであることを説明する必要がありますが、Selenium を有効にするために Java 実行環境を設定する必要があります。

    公式 Web サイト https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html にアクセスし、適応されたバージョンを見つけて、jdk をダウンロードします。

Selenium ファイルをダウンロードします。 http://selenium-release.storage.googleapis.com/index.html (Selenium ダウンロード アドレス) Selenium をダウンロードします。 -server-standalone-3.8.0.jar の jar パッケージ ファイル、バージョンは自分で選択できます

  • ブラウザ ドライバー ファイルをダウンロードします (ここで注意: 必ずダウンロードしてください)これと同じバージョンをダウンロードします) ブラウザのバージョンと一致するドライバー ファイルをコンピュータにインストールします)。 Google ブラウザで使用されるドライバー ファイル名は、chromedriver、https://chromedriver.storage.googleapis.com/index.html (chrome driver ダウンロード アドレス) です。 Firefox のドライバー ファイル名は次のとおりです: geckodriver.exe、https://docs.seleniumhq.org/download/ (selenium 公式 Web サイトに移動してダウンロードし、java を選択します)
    対応する chrom のバージョン各バージョンで、Chrome のバージョン番号は chrome://settings/help

Note で確認できます。 : ダウンロードが完了しました ドライバー ファイルは php のルート ディレクトリに配置されます。

PHP selenium のデモ ファイルをダウンロードします (https://github.com/facebook) /php-webdriver (参照用に test ファイルの下に example.php と case ドキュメントがあります)。

    デモを作成した後、テストすることができます。まず、ダウンロードした Selenium jar パッケージ ファイルを実行し、cmd コマンド ラインで Selenium ファイルを配置したディレクトリを入力して、次のコマンドを実行します (注:必須 2 番目のステップで Java 実行環境変数を構成します) java -jar selenium-server-standalone-3.8.0.jar。コマンドラインに次のプロンプトが表示された場合は、起動が成功したことを意味します。
example.php を実行するとき、D:\test\vendor\facebook\webdriver\lib\Remote \RemoteWebDriver の未定義のインデックス: ELEMENT に注意してください。 .php 178 行目、

調査の結果、新しいバージョンの Selenium の通信プロトコルの変更が原因であることがわかりました。起動時に関連するパラメーター コントロールを追加できます:

java -jar selenium-server-standalone-3.8.0.jar -enablePassThrough false至此,通过编写example.php文件便可实现简单的自动登录流程。
ログイン後にコピー

Run Before Exam .php を使用するには、ekwing の下のベンダー ディレクトリを phpDirver ディレクトリにコピーする必要があります。

example.php を変更して、他の Web サイトからの自動ログインを実現できます。Example.php は次のとおりです:

<?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();
ログイン後にコピー

閑話休題: Selenium は PHP 言語の統合フレームワークをサポートしていないため、プロジェクトで機能テストを行うために Selenium を使用したい場合は、さまざまなスクリプトを自分で組み合わせる必要があり、これはフレームワークを作成するのとほぼ同じです。

推奨学習: 「

PHP ビデオ チュートリアル

以上がSelenium PHP環境のセットアップ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート