求められる能力 Selenium webdriver

⚡ スマートサマリー

望ましい能力とは Selenium ブラウザ、プラットフォーム、デバイスの設定をキーと値のペアとして保存するクラスで、単一のテストスイートでさまざまな環境をターゲットにすることができます。 Selenium グリッド、クラウドグリッド、モバイルオートメーション。

  • 🔘 定義: ブラウザ、バージョン、プラットフォーム、ドライバパスを表すキーと値のペア。
  • ☑️ 目的: このスイートは、ブラウザ、オペレーティングシステム、モバイルデバイスなど、あらゆる環境で動作します。
  • メソッド: setCapability()、getCapability()、setBrowserName()、setVersion()、setPlatform() は環境を記述します。
  • 🧪 例: Internet Explorerのチュートリアルでは、ドライバーパスエラーとその修正方法を再現しています。
  • 🛠️ 現代の同等語: Selenium 4 は、ブラウザの Options クラスで同じ設定を保持します。

求められる能力 Selenium webdriver

求められる能力とは何でしょうか?

望ましい機能は、 Selenium Web アプリケーションのクロスブラウザ テストを実行するためにブラウザのプロパティを設定するために使用されます。機能はキーと値のペアとして保存され、これらの機能はブラウザ名、ブラウザのバージョン、システム内のブラウザ ドライバのパスなどのブラウザ プロパティを設定して、実行時のブラウザの動作を決定するために使用されます。

  • 必要な機能を使用して、 Selenium ウェブドライバー。
  • 次のようにドライバーインスタンスを設定できます Firefox必要な機能を使用してドライバー、ChromeDriver、InternetExplorerDriver を実行します。

バージョンノート: Selenium 4 DesiredCapabilities をブラウザのオプション クラス(ChromeOptions)に置き換えます。 FirefoxOptions、EdgeOptions、InternetExplorerOptions。以下の例では、元の構文を維持しています。

なぜ望ましい能力が必要なのでしょうか?

望ましい機能は、 テスト シナリオは特定のテスト環境で実行する必要があります。 テスト環境には Web ブラウザーを使用できます。 モバイル デバイス、モバイルエミュレータ、モバイルシミュレータなど。Desired Capabilitiesクラスは、テストスクリプトで使用する環境をWebDriverに伝えるのに役立ちます。

このページ後半で説明する DesiredCapabilities クラスの setCapability メソッドは、 Selenium グリッド。これは、 並列実行 異なるマシン構成において。

例:グリッド(下記参照)。

Selenium 望ましい機能に基づいてグリッドを設定する

ブラウザのプロパティ (例: Chrome、IE)、プラットフォーム名 (例: Linux、 Windows)実行中に使用される テストケース.

モバイル オートメーションの場合、さまざまな種類のモバイル デバイスでテストを実行するため、モバイル プラットフォーム (例: iOS、 Android) プラットフォームのバージョン (例: 3.x、4.x) Android)を設定できます。

以下のエミュレーターの例では、プラットフォームとしてAndroid、プラットフォームバージョンとしてIce Cream Sandwich(4.x)が設定されています。

モバイルエミュレーターの機能は Android プラットフォームおよびバージョン4.x

望ましい機能は、次のような場合にさらに役立ちます。

  • モバイル アプリケーション オートメーションでは、ブラウザーのプロパティとデバイスのプロパティを設定できます。
  • In Selenium 異なるオペレーティングシステムやバージョンの異なるブラウザでテストケースを実行したい場合に、Gridを使用します。

必要な機能の種類 方法

ここでは、さまざまな Desired Capabilities メソッドと、そのうちの 1 つである setCapability() メソッドの使い方について説明します。

#1) getBrowserName()

public java.lang.String getBrowserName()

#2) setBrowserName()

public void setBrowserName(java.lang.String browserName)

#3) getVersion()

public java.lang.String getVersion()

#4) setVersion()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) setPlatform()

public Platform setPlatform()

#7) getCapability() メソッド

DesiredCapabilities クラスの getCapability() メソッドを使用すると、システムで現在使用されている機能を取得できます。

public java.lang.Object getCapability(java.lang.String capabilityName)

#8) setCapability() メソッド

Desired Capabilities クラスの setCapability() メソッドは、デバイス名、OS 名とバージョン、ブラウザ名とバージョン、テスト対象アプリの絶対パス (.apk ファイル) など、テスト環境のプロパティを設定するために使用されます。 Android テスト中のアプリ)、アプリのアクティビティ ( Android)と appPackage( Java).

「setCapability メソッド」 Java には以下の宣言があります。

setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability  :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability  :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability  :public void setCapability(java.lang.String key,java.lang.Object value)

機能を設定します Selenium 例:

Internet Explorer ブラウザでテストケースを実行して www.gmail.com ウェブサイトを開く例を考えてみましょう。 Selenium ウェブドライバー。

以下がコードです。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {
  
WebDriver driver = new InternetExplorerDriver();
 driver.manage().window().maximize();
 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

次に、このコードを実行します Eclipse そしてコンソールをチェックしてください。

出力:

上記のコードを実行すると、次のエラーが発生します。このエラーは、ブラウザドライバ(上記の場合はIE)へのパスが設定されていないために発生します。ブラウザが見つかりませんでした。 Selenium コー​​ド。

The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list

Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.

解決策:

上記の問題の解決策は、エラー自体の警告セクションに記載されています。

  1. 32 ビットまたは 64 ビット用の Internet ExplorerDriver スタンドアロン サーバーをダウンロードします。
  2. ドライバーをシステム内の適切な場所に保存します。
  3. System.setProperty メソッドを使用して、ドライバーのパスを設定します。このメソッドは、WebDriver プロパティを使用して IE ドライバーを設定するために使用されます。システム上の場所に保存されているドライバー実行可能ファイルを見つけるのに役立ちます。(例:「C:\IEDriverLocation\IEDriver.exe」)

バージョンノート: Selenium 4.6以降では、ドライバーを自動的に解決します Selenium マネージャーの場合、System.setProperty はオプションです。以下の過去のコードは変更されていません。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {

//it is used to define IE capability 
 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.
  INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);


System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
  
 //it is used to initialize the IE driver
 WebDriver driver = new InternetExplorerDriver(capabilities);
  
 driver.manage().window().maximize();

 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Code 説明:

上記のコードでは、

  • インポートステートメントは、必要なパッケージをインポートします。 Selenium WebDriver、Internet Explorerドライバーに必要なパッケージ、および必要な機能のためのパッケージ。
  • setCapability は、さまざまな機能を入力変数として受け取ります。これらの機能は、Web ドライバーによって目的の環境でアプリケーションを起動するために使用されます。
  • setProperty は、ドライバの場所を示すパスを設定するために使用されます。WebDriver は、そのパスに基づいて必要なドライバを検索します。
  • Gmail 「get」メソッドを使用して、Internet Explorerブラウザでウェブサイトが開かれます。

出力:

Internet Explorerブラウザでのテストケースは、 Selenium ウェブドライバー。

よくあるご質問

後方互換性のために残されているが、実質的には旧式化している。 Selenium 4つのルートはW3C準拠のブラウザオプションオブジェクトを介してセッションを処理するため、新しいスイートではオプションを優先する必要があります。

Chromeオプション、 FirefoxOptions、EdgeOptions、SafariOptions、InternetExplorerOptions。各オブジェクトは、対応するドライバのコンストラクタまたはRemoteWebDriverに直接渡されます。

標準で指定できるのは、browserName、browserVersion、platformName、acceptInsecureCerts、pageLoadStrategy、proxy、timeouts、unhandledPromptBehavior のみです。それ以外の項目には、goog:chromeOptions のようなベンダープレフィックスが必要です。

Appium platformName、automationName、deviceName、およびappまたはappPackageとappActivityのいずれかを、すべてappium:プレフィックスを付けて記述する必要があります。

いいえ。 Selenium 4.6、 Selenium マネージャー 一致するドライバーを自動的にダウンロードします。特定のドライバービルドを固定する場合にのみ設定してください。

クラウドベンダーは、ブラウザ、オペレーティングシステム、デバイスを割り当てるために、同じキーと値のペアを読み取ります。さらに、ビルド名などのベンダー固有の接頭辞も追加されます。

AIモデルは、本番環境の分析データと不具合履歴を分析し、どのブラウザ、バージョン、デバイスの組み合わせがサポートに値するかをランク付けすることで、管理しきれないほど複雑なマトリックスを簡素化します。

副操縦士 機能ブロックを迅速に作成しますが、古いコードから学んだ非推奨の DesiredCapabilities 構文を提案することが多いため、生成されたすべての行を確認してください。