ホームページ > テクノロジー周辺機器 > IT業界 > クロスブラウザテストにSelenium WebDriverを使用する方法

クロスブラウザテストにSelenium WebDriverを使用する方法

Lisa Kudrow
リリース: 2025-02-15 11:08:12
オリジナル
875 人が閲覧しました

クロスブラウザテストにSelenium WebDriverを使用する方法

この記事はもともとLambdatestで公開されました。 SitePointを可能にしてくれたパートナーをサポートしてくれてありがとう。 Seleniumは、主にクロスブラウザーテストに使用される一般的な自動化テストフレームワークです。オープンソースであり、Firefox、Chrome、Internet Explorer、Microsoft EdgeなどのさまざまなブラウザーでWebアプリケーションのテストを自動化するのに最適です。 Seleniumは有名なフレームワークになり、HP QTP(クイックテストプロフェッショナル)や別名HP UFT(Unified Functional Testing)などの他のテストフレームワークに厳しい競争を与えています。 Selenium WebDriverのこのチュートリアルは、Selenium Suite、Selenium WebDriverアーキテクチャのコンポーネントの基本的な理解を開発するのに役立ち、Google Chrome、Mozilla Firefox、およびGoogleのセレンムWebドライバーを使用したクロスブラウザー互換性のWebサイトをテストする自動化を実行する方法を示します。インターネットエクスプローラー。

Seleniumはさまざまなツールの組み合わせであり、各ツールはWebテストの自動化に重要な役割を果たします。 WebDriverチュートリアルに飛び込みましょう

キーテイクアウト

Seleniumコンポーネントの理解:Selenium IDE、WebDriver、グリッド、およびリモートコントロールの役割を把握して、クロスブラウザーテストを効果的に自動化および管理します。

ダイレクトブラウザ通信にWebDriverを使用する:Selenium WebDriverがMiddlemanを使用してブラウザと直接対話する方法を学び、ブラウザの自動化に対してより速く、より信頼性を高めるようにします。
    セレングリッドを使用した並列テストを実装:異なる環境で並行して実行するテストにセレングリッドを使用します。これにより、テスト実行時間の短縮が大幅に短縮されます。
  • lambdatestでテストを構成して実行する:Lambdatestのクラウドセレングリッドの使用方法をリモートで実行し、ローカルインフラストラクチャなしで複数のブラウザーバージョンとオペレーティングシステムにアクセスできるようにします。
  • 実用的なテストシナリオの処理:明示的な待機やその他のセレンWebドライバーテクニックを使用して、ポップアップ、動的要素、AJAXコールなどの実際のテストシナリオを処理するためのセレンスクリプトの作成に関する洞察を得る。
  • 並列実行によるテストの最適化:lambdatestなどのプラットフォームでの並列テストをレバレッジして、合計テスト実行時間を最小限に抑え、より多くのテストを同時に実行できるようにします。
  • Selenium Suiteのコンポーネント
  • コンポーネント
  • 以下は、セレンテストスイートのコアコンポーネントです。
  • Selenium Integrated Development Environment(IDE)
  • セレンリモートコントロール(RC)
  • Selenium webDriver

セレングリッド

さあ、このセレンWebDriverチュートリアルで、これらのコンポーネントを詳細に見てみましょう。

Selenium Integrated Development Environment(IDE)

Selenium IDEは単純なFirefoxプラグインであり、スクリプトの記録と再生に使用されます。ただし、Selenium IDEは、単純なユースケースのテストを自動化するための自動化スクリプトの作成にのみ使用できます。 Selenium IDEは、条件付きステートメント、例外処理、ループ、スクリーンショットキャプチャなどをサポートしていません。複雑なユースケースを自動化するために、開発者とテスターの大部分は、レコードおよびリプレイテストの代わりにスクリプトテストを選択することを好みます。 Selenium Test Suiteは、Selenium Remote Control(RC)またはSelenium WebDriverで構成されています。

Selenium IDEは、さまざまなオペレーティングシステム、すなわちWindows、Linux、Mac OSなどで使用できます。FirefoxのSelenium IDEはここからダウンロードできます。

セレンリモートコントロール(RC)

複雑なシナリオをテストするには、Selenium Remote Control(RC)を使用できます。これは、サーバーによって制御されているブラウザでテストを実行できるようにするクライアントサーバーモデルに基づいています。さまざまなプログラミング言語にクライアントライブラリがあり、開発者が快適で専門知識を持っているプログラミング言語で効果的なテストケースを簡単に作成できます。バージョン2.25.0以来、RCはJava、C#、Python、Perl、Rubyなどのサポートを持っています。

Selenium Serverは、Selenium RCのコアコンポーネントです。セレンRCのコア機能/責任のいくつかは以下にあります:

コアセレンフレームワークが含まれており、主にブラウザに同じものを注入する責任があります。

クライアントプログラムはコマンドをRCに送信し、サーバーによって解釈され、ブラウザに送信されます。
    実行後、結果はクライアントに送り返されます。
  • クライアントとサーバーは、httpの通常のメカニズムと投稿の通常のメカニズムを介して通信します。
  • 前述のように、Selenium RCは、Mozilla Firefoxでのみ利用可能なSelenium IDEとは異なり、さまざまなブラウザーをサポートしています。 Selenium RCの欠点は、特に回帰テストのために、タスクが反復的なテストケースの自動化に不可欠なレコードおよび再生機能をサポートしていないことです。 Selenium RCを使用してテストを実行する前に、Selenium RCサーバーのインスタンスを手動で呼び出す必要があり、そのインスタンスはテストサイクル全体で実行されるはずです。
  • Selenium webDriver
  • Selenium IDEはGUIベースであることがわかっています。ここでは、Selenium RCはHTMLテストスイートを実行できるスタンドアロンJavaプログラムです。 Selenium WebDriverフレームワークは、Selenium IDE&Selenium RCと比較すると、より広く使用されています。クライアントサーバーモデルに基づいたSelenium RCとは異なり、Selenium WebDriverフレームワークは、ブラウザ固有のドライバーを介して実装されます。各ブラウザには、自動化テストが実行される対応するWebDriverアプリケーションがあります。

    Selenium WebDriverはブラウザと直接通信するため、Selenium Serverのような個別のコンポーネントは必要ありません。ソフトウェアテスターなど、C#、Ruby、Java、Python、Perlなどに役立つトッププログラミング言語をサポートします。実行されました。以下に記載されているリンクからSelenium WebDriverをダウンロードできます。

      firefox
    • chrome
    • インターネットエクスプローラー
    • Microsoft Edge
    セレングリッド

    いくつかのブラウザ、オペレーティングシステム、またはデバイスに限定されているコードのテスト中は、

    シリアルテストは問題ありません。ただし、複数の組み合わせを持つ環境でテストを実行する必要があると、方法論は虚弱できます。これは、テストプロセス全体を加速できるため、並列テストが非常に便利な場合です。並列テストを使用すると、同時に異なるテスト構成で同様のテストケースを実行できます。同じブラウザで異なるテストケースを同時に実行することもできます。並列テストにはさらに多くのことがありますが、それはSelenium WebDriverからの焦点を逸脱する可能性があります。

    基本に戻る:Seleniumグリッドは、異なるブラウザーとオペレーティングシステムに対して異なるマシンでテストを実行するのに同時に、並行テストに使用されます。 Selenium RCと組み合わせて仕事をします。セレングリッドの使用を紹介する例は、次のとおりです。

    セレンWebDriverアーキテクチャ

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    Selenium WebDriverアーキテクチャを構成する主要なブロックをご覧ください:

    Seleniumクライアントライブラリ

      jsonワイヤプロトコル
    • ブラウザドライバー
    • ブラウザ
    • 各コンポーネントを詳細に調べてみましょう。
    Seleniumクライアントライブラリ

    前述のように、開発者はSeleniumを使用して、C#、Java、Python、Perlなどのさまざまな言語でテストコードを作成できます。セレンクライアントライブラリまたはセレン言語のバインディングにより、多言語サポートが可能です。たとえば、Pythonでコードを書いている場合、Pythonクライアントライブラリが必要になります。さまざまなプログラミング言語のセレンクライアントドライバーは、こちらからダウンロードできます。

    jsonワイヤプロトコル

    JSON(JavaScriptオブジェクト表記)ワイヤプロトコルは、クライアントとサーバー間のデータの転送を容易にします。残り(表現状態転送)ベースのAPIです。各ブラウザには独自のブラウザドライバーがあります

    ブラウザドライバー

    ブラウザドライバーは、主にブラウザとの通信に使用されます。ブラウザとその機能の内部ロジックは明らかにされていないため、ブラウザドライバーは、実行レベルの詳細をより抽象化するために「カプセル化」の必要なレイヤーを保証します。各ブラウザには、対応するブラウザドライバーがあります

    ブラウザ

    Chrome、Firefox、Internet Explorer、Safari、Microsoft Edgeなどの人気ブラウザでは、ブラウザドライバーが利用できるため、クロスブラウザーテストの実行にはいずれかを使用できます。ブラウザドライバーが公開されていないブラウザでWebサイトのクロスブラウザテストを実行できないことに注意してください。

    クロスブラウザテストにSelenium WebDriverを使用する方法

    lambdatestは現在、クラウド上のセレングリッド

    とともにライブになりました

    Lambdatestは、自動化テストプロセスを迅速に追跡するのに役立つクラウド上のセレングリッドを提供します。 Selenium Gridは、多数のオペレーティングシステムで実行されている2000を超えるリアルブラウザおよびブラウザーバージョンを提供しています。 Lambdatestセレングリッドを使用して並列テストを実行できます。ローカルマシンに重いインフラストラクチャをインストールすることを心配することはできません。さらに、テストカバレッジを最大化するために多種多様なブラウザを取得できます。 実行できる並列セッションの数は、選択した同時セッションに完全に依存します。並列テストは、テストサイクルを大幅にトリミングするのに役立ちます。たとえば、並列テストなしで60分かかるテストスイートがあるとします。これで、2つの同時性がある場合は、2つのテストを同時に実行して、合計テスト時間を30分にトリミングできます。同様に、3つの同時性がある場合、合計テスト時間はさらに20分までトリムします。 lambdatest concurrency計算機を使用して、テストスイートに応じて必要な同時セッションの数を計算します。

    SELENIUM WebDriver in Action

    セレンとブラウザのドライバーの基本を知っているので、今こそ、シンプルなWebDriverスクリプトを見てみましょう。この例を見る前に、プログラミング環境の準備が整っていることを確認してください(Eclipse Marketplaceから必要なすべてのパッケージを使用してEclipseを使用しています)。 Eclipse用のSeleniumプラグインはこちらからダウンロードできます。サンプルコードはPython言語で記述されていますが、C#、Java、Perl、Rubyなどでテストコードを書くことができます。

    firefox webdriverの例

    テストコードはブラウザ(Chrome、Firefox、Internet Explorerなど)と通信するため、対応するクライアントライブラリ/WebDriverがマシンにインストールされていることを確認してください。対応するWebDriverをダウンロードする方法については、セクションブラウザドライバーを参照してください。 以下は、セレン、Firefox WebDriverを使用してWebページを開くサンプルコードです。
    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    コードを通り抜けましょう。アクションを実行する前に、必要なすべてのモジュールは、「Import」ステートメント[行2〜4]を使用してインポートされます。テストコードでは、Firefoxブラウザ[行7]に対してテストが行​​われるため、Firefox WebDriverを使用します。コードでは、FF_DRIVERは、FireFoxブラウザとの対話を実行するために使用されるWebDriverハンドルです。 WebDriverがインストールされていない場合、またはサポートがないブラウザを使用しようとする場合(WebDriver経由)、以下のエラーが発生します。

    selenium.common.exceptions.webdriverexception:メッセージ: 'operadriver'実行可能ファイルはパスにある必要があります

    オペラブラウザ用のWebDriverをロードしようとしたときにエラーメッセージが表示されました(マシンにWebDriverがインストールされていない)。エラーを取り除くには、OperaにWebDriverをインストールする必要があります。

    ブラウザのすべての操作が完了したら、ff_driver.close()が必要なクリーンアップを行い、リソースを解放するために呼び出されます。

    コードを実行するには、Eclipse IDEでCtrl F9を呼び出すか、Pythonコマンドラインオプションを使用してコードをコンパイルすることができます。

    Chrome webDriverの例

    Selenium WebDriverチュートリアルの前のセクションでは、Firefox WebDriverを使用しました。このセクションでは、テストにChromeブラウザを使用している場合に必要な変更を確認します。スタンドアロンクロムドライバーバイナリ(Chrome Browserバイナリとは異なる)が正しいパスで利用できるようにするか、WebDriver.Chrome.Driver Environment変数の一部として存在することを確認する必要があります。 Windowsを使用している場合は、まずここからChrome WebDriverをダウンロードする必要があります。 Pythonをインストールした場所にChromedriver.exeを貼り付けます(この場合、それはデフォルトのインストールパス、つまりC:Python27Scriptsでした)。対応するWebDriver [行8]をロードする必要があり、コードの残りの部分は同じままです。以下はコードスニペットです。変更(Chrome WebDriverに必要)は、別の色で強調表示されています。

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    Internet Explorer WebDriverの例

    これまでのところ、Selenium WebDriverチュートリアルでは、Firefox WebDriver&Chrome WebDriverを使用したクロスブラウザーテストを実証しました。このセクションでは、テストにChromeブラウザを使用している場合に必要な変更を確認します。ここまたはここから正しいInternetExplorer WebDriver(32ビット/64ビット)をダウンロードする必要があります。 Paste InternetExplorerDriver.exe Python(この場合、デフォルトのインストールパス、つまりC:Python27Scripts)または選択したその他の場所をインストールした場所に貼り付けます。 Python実行可能ファイルが存在するパスにInternetExplorer WebDriverをコピーする場合、Webドライバーをロードしながら「絶対パス」に言及する必要はありません[ライン7]。他のケースでは、絶対パス[行9]を指定する必要があります。以下は、別の色で強調表示されている変更(IE WebDriverに必要)のコードスニペットです。

    <span># Import the necessary modules for development
    </span><span>import time
    </span><span>import unit test
    </span><span>from selenium import web driver
    </span>
    <span># Invoke a new Firefox Instance
    </span>ff_driver <span>= webdriver.Firefox()
    </span>
    <span># Blocking wait of 30 seconds in order to locate the element
    </span>ff_driver<span>.implicitly_wait(30)
    </span>ff_driver<span>.maximize_window()
    </span>
    <span># Open the required page
    </span>ff_driver<span>.get("http://www.lambdatest.com")
    </span>
    <span># Sleep for 10 seconds in order to see the results
    </span>time<span>.sleep(10)
    </span>
    <span># Close the Browser instance
    </span>ff_driver<span>.close()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    最後に、Selenium WebDriverチュートリアルでは、マウスの動き、ボタンの動き、コンテキストメニューインタラクションなどの低レベルの相互作用を自動化するために使用されるActionChainsモジュールを使用する別の例をご覧ください。 UIデザイン。 ActionChainsの詳細については、こちらをご覧ください

    上記の例コードに見られるように、Firefox WebDriverインスタンス[行9〜16]を作成するためのコードを保持します。インポートされる新しいモジュール(アクションチェーンとキー)がいくつかあります。目的のWebページ、つまりhttps://www.lambdatest.com/がブラウザによって開かれると、リンクテキストを調べることで検索操作が実行されます(Find_Element_by_link_textメソッドを使用)。この例では、Webページで検索されるリンクテキストは「サポート」です[20〜22行目]。

    検索条件に遭遇したら、(CTRLクリック)操作が実行され、「新しいタブ」[26〜30行目]でそのページを開きます。 ActionChainsモジュールは、その操作を実行するために使用されます。出力は次のとおりです
    <span># Import the necessary modules for development
    </span><span>import time
    </span><span>import unit test
    </span><span>from selenium import web driver
    </span>
    <span># Invoke a new Chrome Instance
    </span>ff_driver <span>= webdriver.Chrome()
    </span>
    <span># Blocking wait of 30 seconds in order to locate the element
    </span>ff_driver<span>.implicitly_wait(30)
    </span>ff_driver<span>.maximize_window()
    </span>
    <span># Open the required page
    </span>ff_driver<span>.get("http://www.lambdatest.com")
    </span>
    <span># Sleep for 10 seconds in order to see the results
    </span>time<span>.sleep(10)
    </span>
    <span># Close the Browser instance
    </span>ff_driver<span>.close()
    </span>
    ログイン後にコピー

    上記の例を見ていたので、ActionChainsを利用しました。こちらのSelenium WebDriverモジュール(Python用)の下のさまざまなモジュールをご覧ください。実装にはPython言語を使用しましたが、選択したプログラミング言語(C#、Java、Perl、Ruby、PHP)を使用できます。

    ローカルWebDriver - それほどスケーラブルなアプローチ

    限られた数の「ブラウザオペレーティングシステムデバイス」の組み合わせでWebサイトをテストすることを計画している場合に、ローカルWebDriverを使用したテストを使用できます。ただし、組み合わせの数が多い場合、アプローチが緩和される場合があります。それはスケーラブルなアプローチではなく、非常に費用がかかる可能性があるため、あらゆる組み合わせにローカルセットアップを作成することはできません。

    より良いソリューションは、クラウドでクロスブラウザーテストを実行できるLambdatestのようなプラットフォームの機能を活用することです。 LambDatestを使用して、2000の異なるブラウザー、オペレーティングシステム、およびデバイス構成でWebサイトを確認できます。開始するには、lambdatestでアカウントを作成する必要があります。 WebアプリケーションをテストするためにリモートWebDriver(lambdatestでセレングリッドを使用)を使用するため、lambdatestプロファイルからユーザー名とアクセスキーについてメモを取る必要があります。

    lambdatestを使用したリモートWebDriverを使用してSeleniumスクリプトを実行しています

    セレンムWebドライバーの使用と、そのアプローチを使用する潜在的な欠点について知っているので、ローカルWebDriverの実装をリモートWebDriverに移植する方法について説明します。リモートWebDriverのコア原理は、ローカルWebDriverに似ていますが、リモートWebドライバーコードが開始された場所から同じマシンで実行されない場合があります。リモートWebDriverは、サーバーが最新のJEEアプリサーバーでホストされているシンプルなJavaサーブレットであるクライアントサーバーモデルに基づいています。ハブ/サーバーは、実行する必要があるテストをロードします。さまざまなクライアントからのテストリクエストを受信し、要件(目的の機能と呼ばれる)に基づいて、リクエストを最適な/最適なクライアントにルーティングします。 たとえば、

    Ubuntu OS Chromeでテストを実行する必要がある場合、サーバー/ハブは、サーバーに登録されたクライアント/ノードの機能をスキャンし、マッチング機能でクライアントにリクエストを迂回させます。 Seleniumグリッドアーキテクチャには、1つのサーバーと数のクライアントのみができます。リモートドライバーAPIに関する詳細情報は、LambDatest Webサイトの他のブログで入手できます。

    lambdatestにログインしたら、Lambdatest機能ジェネレーターにアクセスしてノードに必要な機能を生成する必要があります。好みのプログラミング言語(この場合はPython)と適切なOS/ブラウザの組み合わせを選択します。機能を設定しながら、スクリーンショットとビデオの録画機能を有効にすることができます。以下に示すように、私たちの要件は、Windows 10マシンにインストールされているFirefox(バージョン64.0)で実行する必要があることです。要件の機能は次のとおりです

    以下は、lambdatest機能ジェネレーターからのスクリーンショットです:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    lambdatestサーバーでセレングリッドを使用するため、クラウドインフラストラクチャ(リモートURLとも呼ばれる)にアクセスするためにコードを変更する必要があります。リモートURLを以下に示します:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー
    ログイン後にコピー

    @hub.lambdatest.com/wd/hubは、テストが実行されるlambdatestのセレングリッドセットアップです。ユーザー認証のために、user_name(lambdatestでの登録に使用)&app_key(アクセストークン)がグリッドURLに追加されます。連結された文字列はremote_urlを形成します。リモートWebDriver APIおよび機能ジェネレーターについて知っているので、これらの要件に合わせて以前の例を移植しましょう。

    parallel_test_example-1.py

    <span># Import the necessary modules for development
    </span><span>import time
    </span><span>import unit test
    </span><span>from selenium import web driver
    </span>
    <span># Invoke a new Firefox Instance
    </span>ff_driver <span>= webdriver.Firefox()
    </span>
    <span># Blocking wait of 30 seconds in order to locate the element
    </span>ff_driver<span>.implicitly_wait(30)
    </span>ff_driver<span>.maximize_window()
    </span>
    <span># Open the required page
    </span>ff_driver<span>.get("http://www.lambdatest.com")
    </span>
    <span># Sleep for 10 seconds in order to see the results
    </span>time<span>.sleep(10)
    </span>
    <span># Close the Browser instance
    </span>ff_driver<span>.close()
    </span>
    ログイン後にコピー
    ログイン後にコピー
    コードウォークスルー、特に主要な変更を実行しましょう

    ユーザー名とAccessTokenはGridurlに追加されます。組み合わせは、テストケースの実行が実行されるリモートURLを形成します。
      WebDriver.Remote APIは、ローカルWebDriver APIの代わりに使用されます。リモートWebDriver APIには、Command_executor:テストが実行されるグリッドセットアップと希望の_capability:希望の機能/ノードの要件の2つの引数があります。これらの機能要件に基づいて、コードが実行される適切なノードが選択されます。
    • テストのステータスを確認するには、lambdatestダッシュボードにアクセスする必要があります。機能の形成に使用されるビルド名を介してテストを検索できます。 lambdatestグリッドで実行されている上記のテストのスクリーンショットは以下にあります。

    出力パネルには、デバッグ中に機器になる可能性のあるさまざまなオプションがあります。主要なオプションのいくつかは以下にあります。

    クロスブラウザテストにSelenium WebDriverを使用する方法例外 - テストコードの実行中に発生した例外をリストします。

    ログ - このタブは、セレンログとコンソールログを示しています。コードをデバッグするのに非常に便利です。

    メタデータ - テストが実行されたテスト環境に関する詳細情報が含まれています。この場合、テストはWindows 10マシンにインストールされているFirefox 64.0で実行されます。ブラウザの構成の詳細も取得できます。
    • 並列テスト - テストサイクルを加速
    テストプロセス全体を加速できるLambdatestの1つの機能は、並列テストです。選択した価格モデルに基づいて、テストの全体的な実行時間が短縮されるように、テストを同時に実行できます。私たちの場合、2つの同時セッションを行うことができます。同時セッションが多いほど、合計テスト実行時間が短くなります。

    クロスブラウザテストにSelenium WebDriverを使用する方法

    並列化の特徴を実証するために、2つのテスト実行を同時に実行します。前の例(parallel_test_example-1.py)に加えて、2番目のテスト(parallel_test_example-2.py)を同時に実行します。

    parallel_test_example-2.py <span>from selenium import webdriver </span><span>from selenium.webdriver.common.keys import Keys </span> desired_cap <span>= { </span><span>'platform' : 'win10', </span><span>'browserName' : 'chrome', </span><span>'version' : "67.0", </span><span>} </span> url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub" </span> driver <span>= webdriver.Remote( </span> desired_capabilities<span>=desired_cap, </span> command_executor<span>= url </span><span>) </span> driver<span>.implicitly_wait(1) </span>driver<span>.get("http://www.google.com/") </span>driver<span>.quit() </span>

    Pythonコマンドを呼び出すことにより、2つの異なる端子で2つのテストを並行して実行します。

    クロスブラウザテストにSelenium WebDriverを使用する方法 以下は、lambdatest Automation Logsのスクリーンショットです。ここでは、2つのテストが並行して実行されていることがわかります。

    結論クロスブラウザテストにSelenium WebDriverを使用する方法

    テストプロセス全体を加速するため、LambDatestのようなクラウドインフラストラクチャでリモートWebDriver APIを使用することには多くの利点があります。また、非常にスケーラブルなアプローチです。並行性、つまり並列化を使用することにより、自動化テストに費やされる全体の時間をさらに短縮できます。 クロスブラウザーテストのためのセレンWebDriverに関するよくある質問(FAQ)

    クロスブラウザーテスト用のセレンWebDriverをセットアップするための前提条件は何ですか?

    クロスブラウザーテスト用のSelenium WebDriverをセットアップする前に、特定の前提条件を配置する必要があります。まず、テストスクリプトの作成に使用するプログラミング言語を基本的に理解する必要があります。 Seleniumは、Java、Python、C#、Rubyなどの複数の言語をサポートしています。次に、選択した言語用にSelenium WebDriverライブラリをインストールする必要があります。第三に、テストするブラウザ用のブラウザドライバーをインストールする必要があります。最後に、テストケースを管理するには、JavaのTestngやJunit、またはPythonのUnittestまたはPytestなどのテストフレームワークが必要です。 🎜> Selenium WebDriverでは、動的なWeb要素の処理が困難になる可能性があります。ただし、さまざまな戦略を使用して対処できます。一般的な方法の1つは、Seleniumの明示的な待機機能を使用することです。これにより、DOM内の要素の存在など、特定の条件が満たされるまで、スクリプトが一定の時間一時停止することができます。別の方法は、要素の属性の動的部分に一致するようにワイルドカード文字を備えたXPathまたはCSSセレクターを使用することです。 Selenium WebDriverでは、testngやpytestなどの並列実行をサポートするテストフレームワークを使用できます。 testngでは、testng.xmlファイルのスイートタグに並列属性をメソッドまたはテストに設定し、使用するスレッドの数にスレッドカウント属性を指定できます。 pytestでは、pytest -xdistプラグインを使用して、-nオプションを使用してコマンドラインのプロセス数を指定できます。

    セレンWebDriverを使用してポップアップウィンドウまたはアラートを処理するにはどうすればよいですか?

    Selenium WebDriverは、ポップアップウィンドウまたはアラートを処理するためのアラートインターフェイスを提供します。 spitchto()。alert()メソッドを使用してアラートに切り替えてから、accept()、dimiss()、getText()、またはsendKeys()メソッドを使用して、アラートと対話することができます。アラートを処理した後、メインウィンドウに切り替えることを忘れないでください。

    セレンWebDriverを使用してテスト障害のスクリーンショットを撮影するにはどうすればよいですか?

    Selenium WebDriverは、スクリーンショットをキャプチャするためにTakessCreenshotインターフェイスを提供するにはどうすればよいですか。 getScreenshotas()メソッドを使用して、スクリーンショットを取り、ファイルに保存できます。このメソッドは、トライキャッチステートメントのキャッチブロックまたはテストフレームワークのアフターテスト方法で、テスト障害のスクリーンショットをキャプチャして呼び出すことができます。

    Selenium WebDriverは、ドロップダウンメニューと対話するための選択クラスを提供します。ドロップダウン要素をコンストラクターに渡すことにより、選択クラスのオブジェクトを作成できます。次に、オプションを選択するには、selectbyvisibletext()、selectbyvalue()、またはselectbyindex()メソッドを使用できます。 getoptions()メソッドを使用して、ドロップダウンですべてのオプションを取得することもできます。 ).frame()メソッド。このメソッドにインデックス、名前またはID、またはiframe要素を渡すことができます。 IFRAMEと対話した後、switchTo()。defaultcontent()メソッドを使用してメインウィンドウに切り替えることを忘れないでください。 Cookieと対話します。 AddCookie()メソッドを使用してCookie、GetCookienamed()メソッドを追加して特定のCookieを取得し、すべてのCookieを取得し、deleteCookie()、deletecookienamed()、またはdeleteallcookies()メソッドを取得できます。 Cookieを削除します。

    セレンWebDriverを使用してAJAXコールを処理するにはどうすればよいですか?

    Selenium WebDriverでのAJAXコールの処理は、非同期でデータを取得するのに時間がかかるため、注意が必要です。 Ajaxコールが完了してデータが読み込まれるまで待機するために、予想されるコンディションで明示的な待機を使用することができます。

    セレンWebDriverを使用してキーボードイベントとマウスイベントを処理するにはどうすればよいですか?キーボードとマウスのイベントを処理するクラス。アクションクラスのオブジェクトを作成し、click()、doubleclick()、contextclick()、ragenanddrop()、keyup()、keyup()などのメソッドを使用して、さまざまなキーボードおよびマウスアクションをシミュレートします。 🎜>

以上がクロスブラウザテストにSelenium WebDriverを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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