ホームページ >バックエンド開発 >PHPチュートリアル >PHPunitを使用してSelenium WebドライバーAPIを使用します

PHPunitを使用してSelenium WebドライバーAPIを使用します

William Shakespeare
William Shakespeareオリジナル
2025-02-17 12:20:14326ブラウズ

この記事では、PHPでのブラウザエミュレーション用のFacebookのWebDriverパッケージを使用して、SeleniumをPHPunitで覆う前の記事(ここには含まれていない)に基づいて検討しています。 受け入れテストとブラウザの相互作用の自動化に焦点を当てています

Using the Selenium Web Driver API with PHPUnit

phpunitのセレン拡張との重要な違い:

FacebookのWebDriverでは、PHPunitの自動処理とは異なり、
    を使用して手動ブラウザセッションの閉鎖が必要です。
  • Selenium Server Interactionのクラスを活用します tearDown()
  • 実装の手順:RemoteWebDriver

インストール:

Composerを使用してFacebook WebDriverパッケージをインストールしてください:
  1. composer require facebook/webdriver --devテストクラスのセットアップ:

    phpunitテストクラス(例えば、
  2. )を作成します
  3. メソッドはインスタンスを初期化し、Selenium Serverアドレス(デフォルトで)を指定し、目的のブラウザ機能(FirefoxまたはChromeなど)を指定します。 UserSubscriptionTestFB.php PHPUnit_Framework_TestCase setUp() RemoteWebDriverhttp://localhost:4444/wd/hubブラウザのクロージャー:

    各テスト後のブラウザセッションを閉じるためには
    <code class="language-php">public function setUp()
    {
        $this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::firefox());
    }</code>
    メソッドが重要です:
  4. tearDown()フォームインタラクション:

    <code class="language-php">public function tearDown()
    {
        $this->webDriver->quit();
    }</code>
    メソッドは
  5. を使用して
  6. を使用してフォーム要素を見つけて対話します。

    fillFormAndSubmit()findElement()テストケース:WebDriverByテスト方法データプロバイダー(前の記事から想定)を使用して、テスト入力を提供します。アサーションは、予想される結果(成功またはエラーメッセージ)を検証します。 例:

    <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>
  7. <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. 要素を待っています:takeScreenshot()メソッド

    または
    <code class="language-php">$this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");</code>
    を処理します。
  2. 高度なインタラクション:wait()この記事では、ドラッグアンドドロップ、アラート処理、キーボードショートカットなどのより高度なインタラクションをカバーしています。

  3. ヘッドレステスト:この記事では、グラフィカルなディスプレイなしでシステムでヘッドレスブラウザーテストにxvfb(x仮想フレームバッファ)を使用する方法について説明します。 両方の方法(xvfbを個別に実行してxvfb-runを使用する)が詳細になります。

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

便利なリンク(元の繰り返し):

この記事は、ブラウザの自動化タスクを含む、テストを超えたセレンのより広範なユーティリティを強調することで締めくくります。 FAQセクションでは、インストール、基本テスト、例外処理、アサーション、ブラウザの選択、要素の相互作用、要素の待機、スクリーンショットキャプチャ、アラート処理、並列テスト実行に関するさらなるガイダンスを提供します。

以上がPHPunitを使用してSelenium WebドライバーAPIを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。