これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.

このページの通常のビューに戻る.

入門

Seleniumを初めて使用する場合は、すぐに習得するのに役立つリソースがいくつかあります。

Seleniumは市場で主要なブラウザの全てを WebDriver を使うことでサポートしています。 WebDriverとはAPI群とプロトコルです。これらはウェブブラウザの動作をコントロールするための言語中立なインターフェイスを定義しています。 それぞれのブラウザは特定のWebDriverの実装を持っており、これらは driver と呼ばれます。 driverはブラウザに委譲する責務を持つコンポーネントであり、Seleniumとブラウザ間の通信を処理します。

この分離は、ブラウザベンダーに自分たちのブラウザでの実装の責任を持たせるための意図的な努力のひとつです。 Seleniumは可能な場合これらのサードパーティ製のdriverを使いますが、それが現実的でない場合のためにプロジェクトでメンテナンスしているdriverも提供しています。

Seleniumフレームワークはこれら全ての要素をユーザ向けのインターフェイスを通して結びつけます。このインターフェイスは異なるブラウザバックエンドを透過的に使えるようにし、クロスブラウザ・クロスプラットフォームの自動化を可能にします。

Seleniumのセットアップは、他の商用ツールのセットアップとはかなり異なります。 Seleniumコードの記述を開始する前に、次のことを行う必要があります 選択した言語、つまりブラウザーの言語バインディングライブラリをインストールします 使用したい、そのブラウザのドライバ。

以下のリンクをたどって、Selenium WebDriverを起動してください。

ローコード/録音および再生ツールから始めたい場合は、確認してください Selenium IDE

物事がうまくいったら、テストをスケールアップしたい場合は、Selenium Grid.

1 - Seleniumライブラリのインストール

お気に入りのプログラミング言語用にSeleniumライブラリを設定します。

最初にあなたの自動化プロジェクトにSeleniumのバインディングをインストールする必要があります。 インストールの方法は選択した言語によって異なります。

言語別の要件

サポートされている最小のJavaバージョンを表示する ここ.

Java用のSeleniumライブラリのインストールは、ビルドツールを使用して行います。

Maven

プロジェクトの ‘pom.xml’ ファイルで依存関係を指定します:

Gradle

プロジェクトの ‘build.gradle’ ファイル内の依存関係を ’testImplementation’ として指定します:

各 Selenium バージョンでサポートされている最小の Python バージョンは、 PyPI の「Supported Python Versions」で確認できます。

Seleniumをインストールするには、いくつかの方法があります。

Pip

pip install selenium

ダウンロード

または、ダウンロードすることもできますPyPI ソースアーカイブ (selenium-x.x.x.-py3-none-any.whl) を使用してインストールします pip:

pip install selenium-x.x.x.-py3-none-any.whl

プロジェクトで必要

プロジェクトで使用するには、requirements.txt ファイルに追加します:

Seleniumの各バージョンでサポートされているすべてのフレームワークのリスト で利用可能ですNuget

Seleniumのインストールにはいくつかのオプションがあります。

パケットマネージャー

Install-Package Selenium.WebDriver

.NET CLI

dotnet add package Selenium.WebDriver

CSProj

プロジェクトの csprojファイルで、ItemGroup の PackageReferenceとして依存関係を指定します。:

その他の考慮事項

その他、使用上の注意点 Visual Studio Code (vscode) そして C#

上記のセクションに従って、互換性のある .NET SDK をインストールします。 また、C# と NuGet の vscode 拡張機能 (Ctrl-Shift-X) もインストールします。に従ってください指示はこちら C# を使用して “Hello World” コンソール プロジェクトを作成および実行します。 コマンドラインを使用してNUnitスタータープロジェクトを作成することもできます dotnet new NUnit. ファイルを確認してください %appdata%\NuGet\nuget.config一部の開発者がいくつかの問題のために空になると報告したため、適切に構成されています。 もしnuget.configが空であるか、正しく構成されていない場合、Selenium プロジェクトの .NET ビルドは失敗します。 次のセクションをファイルに追加しますnuget.config 空の場合:

<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />   
  </packageSources>
...

詳細については、nuget.config ここをクリック. カスタマイズする必要があるかもしれません nuget.config あなたのニーズを満たすために。

さて、戻ってください vscode、プレス Ctrl-Shift-P、およびタイプ “NuGet Add Package"をクリックし、必要な Selenium パッケージ Selenium.WebDriver. Enter キーを押して、バージョンを選択します。 これで、C# と vscode に関連するドキュメントの例を使用できるようになりました。

特定の Selenium バージョンに必要な最小 Ruby バージョンは、 rubygems.org で確認できます。

Seleniumは2つの異なる方法でインストールできます。

手動でインストールする

gem install selenium-webdriver

プロジェクトの gemfile に追加

Selenium の特定のバージョンに必要な最小 Node.js バージョンは、 npmjs の「Node Support Policy」で確認できます。

Seleniumは通常、npmを使用してインストールされます。

ローカルにインストールする

npm install selenium-webdriver

プロジェクトに加える

プロジェクトの package.jsonで、要件を dependencies:

Kotlin の Java バインディングを使用します。

次のステップ

初めてのSeleniumスクリプトを作成する

2 - 最初のSeleniumスクリプトを書く

Seleniumスクリプトを作成するための段階的な説明

Seleniumをインストールし、 すると、Seleniumコードを書く準備が整います。

8つの基本コンポーネント

Seleniumが行うことはすべて、ブラウザコマンドを送信して、何かを実行したり、情報の要求を送信したりすることです。 Seleniumで行うことのほとんどは、次の基本的なコマンドの組み合わせです。

[GitHub で完全な例を表示] へのリンクをクリックして、コンテキスト内のコードを表示します。

1. ドライバーインスタンスでセッションを開始します

セッションの開始の詳細については、次のドキュメントをお読みください driver sessions

2. Take action on browser

こちらの例では、ナビゲート してウェブページに移動しています。

3. ブラウザに関する情報をリクエストします

ブラウザに関する 情報 として、ウィンドウハンドル、ブラウザのサイズ/位置、クッキー、アラートなど、さまざまな種類のデータをリクエストできます。

4. 待機戦略の確立

コードをブラウザの現在の状態と同期させることは、最大の課題の 1 つです Seleniumを使用して、それをうまく行うことは高度なトピックです。

基本的には、要素を見つける前に、その要素がページ上にあることを確認する必要があります また、要素は、操作を試みる前に対話可能な状態にあります。

暗黙的な待機が最善の解決策になることはめったにありませんが、ここで示すのが最も簡単なので、 プレースホルダーとして使用します。

待機戦略についてさらに読む。

5. 要素を検索するためのコマンドを送信します

ほとんどのSeleniumセッションにおけるコマンドの大部分は要素に関連しており、要素を見つける ことなしにはそれと対話することができません。

6. 要素に対してアクションを実行する

要素に対して行う アクションはわずかしかありませんが、それらは頻繁に使用されます。

7. 要素に関する情報をリクエストします

要素には リクエスト可能な情報 が多く保存されています。

8. セッションを終了します

これにより、ドライバー プロセスが終了し、既定ではブラウザーも閉じます。このドライバー インスタンスにこれ以上コマンドを送信することはできません。

セッションの終了 を参照.

Seleniumファイルの実行

次のステップ

ほとんどのSeleniumユーザーは多くのセッションを実行し、重複を最小限に抑え、コードをより保守しやすくするために整理する必要があります。このコードをユースケースのコンテキストに配置する方法については、以下をお読みください Seleniumの使用。

3 - Seleniumコードの整理と実行

IDEとテストランナーライブラリを使用したSelenium実行のスケーリング

一握り以上の 1 回限りのスクリプトを実行する場合は、コードを整理して操作できる必要があります。このページでは、Seleniumコードを使用して実際に生産的なことを行う方法についてのアイデアを提供します。

一般的な用途

ほとんどの人はSeleniumを使用してWebアプリケーションの自動テストを実行します。 しかし、Seleniumはブラウザ自動化のあらゆるユースケースをサポートします。

反復タスク

おそらく、Webサイトにログインして何かをダウンロードするか、フォームを送信する必要があります。 Selenium スクリプトを作成して、あらかじめ設定された時間にサービスと共に実行できます。

Webスクレイピング

API がないサイトからデータを収集したいとお考えですか? Selenium では可能ですが、Web サイトの利用規約をよく理解しておいてください。 許可していないサイトもあり、Selenium をブロックするサイトさえあります。

テスティング

テストでSeleniumを実行するには、Seleniumが実行した操作に対してアサーションを行う必要があります。 そのため、優れたアサーションライブラリが必要です。テストに構造を与える追加機能には、 テストランナーを使用する必要があります。

IDEs

Seleniumコードの使用方法に関係なく、優れた統合開発環境がなければ、Seleniumコードの作成や実行はあまり効果的ではありません。一般的なオプションを次に示します…

Test Runner

テストにSeleniumを使用していない場合でも、高度なユースケースでは、テストランナーを使うとコードを より適切に整理できる場合があります。before/afterフックを使用し、処理をグループ単位または並列で 実行できることは、非常に便利です。

テストランナーの選び方

さまざまなテストランナーが利用可能です。

このドキュメントのすべてのコード例は、テストランナーを使用するサンプルディレクトリに格納されているか、 格納先を移行中です。すべてのコードが正しく更新されていることを確認するため、リリースのたびに実行されます。 以下にテストランナーをリンクとともに示します。各リストの最初の項目は、このリポジトリと このページのすべての例で使用されているものです。

  • JUnit - JavaベースのSeleniumテストで広く使用されているテストフレームワーク。
  • TestNG - 並列テスト実行やパラメーター化されたテストなどの追加機能を提供します。
  • pytest - そのシンプルさと強力なプラグインのおかげで、多くの人に好まれる選択肢です。
  • unittest - Python の標準ライブラリテストフレームワーク。
  • NUnit - .NET の一般的な単体テスト フレームワーク。
  • MS Test - Microsoft 独自の単体テスト フレームワーク。
  • RSpec - RubyでSeleniumテストを実行するために最も広く使用されているテストライブラリ。
  • Minitest - Ruby標準ライブラリに付属する軽量なテストフレームワークです。
  • Jest - 主にReactのテストフレームワークとして知られていますが、Seleniumのテストにも使用できます。
  • Mocha - Seleniumテストを実行するための最も一般的なJSライブラリ。
  • Kotest - Kotlin専用に設計された、柔軟で包括的なテストフレームワークです。
  • JUnit5 - 標準的なJavaテストフレームワークであり、Kotlinと完全に互換性があります。

インストール

これはSeleniumライブラリのインストールで必要な手順と非常によく似ています。 このコードは、ドキュメント用のサンプルプロジェクトで使用しているものの例を示すだけです。

Maven

Gradle

プロジェクトで使用するには、requirements.txt ファイルに追加します:

プロジェクトの ‘csproj’ ファイルで、依存関係を ‘ItemGroup’ の ‘PackageReference’ として指定します:

プロジェクトの gemfile に追加

プロジェクトの ‘package.json’ で、要件を ‘dependencies’ に追加します。:

アサーション

セットアップとティアダウン

セットアップ

ティアダウン

セットアップ

ティアダウン

セットアップ

ティアダウン

### セットアップ
### ティアダウン

実行

Maven

mvn clean test

Gradle

gradle clean test

Mocha

mocha runningTests.spec.js

npx

npx mocha runningTests.spec.js

例

最初のスクリプトのトピックでは、Seleniumスクリプトの各コンポーネントを見ました。こちらが、テストランナーを使用したそのコードの例です。

次のステップ

学んだことを活かして、Seleniumコードを構築します!

必要な機能が他にも見つかったら、残りの機能をお読みください WebDriver ドキュメント.