selenium 4 new features
このレビューでは、Selenium3とSelenium4の違い、および最新バージョンのSelenium 4(アルファ3)の新機能と変更点を示します。
Selenium 4(Alpha 3)バージョンが市場に投入されました。 Seleniumの創設者は「SimonStewart」であり、現在、彼はWebドライバーだけでなく、グリッドとIDEにも新しいバージョンを導入しています。
Selenium 4は、W3C標準のWebドライバープロトコルを採用しました。 Google Chrome、Safari、Internet Explorer、EdgeなどのすべてのブラウザーもW3C標準に準拠しているため、ブラウザードライバーとSeleniumWebドライバー間の相互作用はW3C標準のWebドライバープロトコルに基づいています。
学習内容:
Selenium4レビュー
以前のSeleniumコマンドはブラウザーによって動作が大きく異なるため、W3C標準に関連する変更はバージョンを改善するために行われました。
注意 :2019年4月にリリースされたSelenium 4Alphaバージョン。
ダウンロード Selenium 4Alphaバージョン 下の画像に示すように、「4.0.0-alpha-6」をクリックします。
最新バージョンのライブラリは、Maven中央リポジトリにあります。
推奨読書=> Seleniumリモートドライバー
Selenium3とSelenium4の違い
セレン3 | セレン4 |
---|---|
ブラウザの相互作用はJSONワイヤープロトコルに基づいているため、APIのエンコードとデコードが必要です | これはW3C標準プロトコルに準拠しているため、ドライバーとブラウザーの通信は標準の手順に従い、APIのエンコードとデコードを必要としないため、通信は直接行われます。 |
重要なアーキテクチャ関連の変更
#1)一部のブラウザでサポートが削除されました: 現在、彼らはブラウザOperaとPhantomJSのサポートを削除しました。 OperaユーザーはChromeブラウザを使用できますが、PhantomJSユーザーはヘッドレスモードでChromeまたはFirefoxを使用できます。
#2)最適化されたSeleniumグリッド: Selenium Gridは、2011年に開発されました。
Selenium 4は、インストールおよび構成中に、またハブとノードマシン間の接続中に発生した問題を取り除くために、新しいアーキテクチャを考案しました。
2つの主要なコンポーネントを含むSeleniumグリッドについて簡単に理解しましょう。
- ノード: 個々のコンピュータシステムでテストを実行するために使用されます。グリッドには複数のノードが存在する場合があります。
- ハブ: これは、ネットワークに存在するすべてのマシンを制御する中心点であり、テスト実行をさまざまなノードに割り当てるのに役立つハブが1つだけ含まれています。
しかし、Selenium 4では、グリッドは非常に柔軟です。これにより、複数のブラウザー、異なるバージョンのブラウザー、および異なるオペレーティングシステムに対してケースをテストできます。現在でも、ユーザーがサーバーを起動すると、ハブとノードを個別に起動するように設定する必要はありません。グリッドは自動的にノードとハブの両方として機能します。
また、DevOpsプロセスで役立つDocker、AWS、Azureなどの高度なツールもサポートしています。現在、GridにはよりユーザーフレンドリーなUIがあり、セッション、実行、容量などに関連する関連情報が含まれています。
>>クリック ここに 詳細については。
#3)標準化されたドキュメント: ドキュメントはすべてのユーザーにとって重要な役割を果たし、SeleniumドキュメントはSelenium2.0以降更新されていません。
Selenium 4では、Webドライバー、グリッド、IDEなど、Seleniumに関連するすべての公式ドキュメントが更新され、最新の変更が説明されています。
#4)Selenium 4 IDEの改善: Selenium IDEは、ユーザーがブラウザーを操作するために使用される記録および再生ツールであり、新しいバージョンのIDEはより多くの機能を備えています。
これらの機能は次のとおりです。
- ブラウザのサポートが向上します。新しいバージョンでは、どのブラウザベンダーも最新のSeleniumIDEに簡単にプラグインできます。
- CLIランナーは、HTMLベースのランナーではなくNodeJSに基づいており、並列実行をサポートします。並列実行から、合格/不合格のテストケースの総数と実行時間のレポートが提供されます。
#5)より良いモニタリング: ロギングおよびリクエストトレースプロセスが改善され、DevOpsのみに限定されないため、自動化エンジニアのデバッグプロセスをより適切に把握できるようになりました。
Selenium4の機能
機能は次のとおりです。
#1)特定のWeb要素のスクリーンショットをキャプチャします。
以前は、特定のWeb要素のスクリーンショットを撮る準備がなかったため、ユーザーはページ全体のスクリーンショットを撮ることができました。ただし、Selenium 4を使用すると、ユーザーは特定のWeb要素のスクリーンショットを撮ることができます。
以下のコードを見つけてください:
WebElement logo=driver.Findelement (By.xpath(“//div(@id=’divLogo’)//img”)); File file=logo.getScreenshotAs(OutputType.FILE); File destFile =new File(“logo.png”); FileUtils.copyFile(file,destfile);
#2)ブラウザで新しいタブを開きます。
これで、Selenium 4では、ユーザーは既存のタブと一緒に新しいタブでURLを開くことができます。
例えば: ユーザーが2つの異なるタブで2つのURLを同時に開きたい場合、ユーザーはSelenium4でそれを行うことができます。
参考のために以下のコードを見つけてください:
driver.get(https://www.google.com/); driver.switchTo().newWindow(WindowType.TAB); driver.navigate().to(https://www.crmpro.com/);
#3)ブラウザで新しいウィンドウを開きます。
Selenium 4を使用すると、ユーザーは同じブラウザーで新しいウィンドウを開くこともできます。
例えば、 ユーザーが同じブラウザーで2つのアプリケーションにアクセスしたい場合、ユーザーはこれを実行できるようになりました。
参考のために以下のコードを見つけてください:
driver.get(https://www.google.com/); driver.switchTo().newWindow(WindowType.WINDOW); driver.navigate().to(https://www.crmpro.com/);
#4)オブジェクトの場所:
Selenium 4を使用すると、ユーザーはWeb要素またはオブジェクトの場所として座標、寸法、高さ、幅などを取得できます。
参考までに、以下のコードを見つけてください。
WebElement logo1=driver.Findelement(By.xpath(“//div(@id=’divLogo’)//img”)); System.out.println(“Height:” +logo.getRect().getDimension().getHeight()); System.out.println(“Height:” +logo.getRect().getDimension().getWidth()); System.out.println(“X Location: “ +Logo.getRect().getX()); System.out.println(“Y Location: “ +Logo.getRect().getY());
#5)相対ロケーター:
これらはFriendlyLocatorとも呼ばれ、この機能は他のWeb要素の近くに存在する要素を見つけるために追加されています。つまり、GUIの場所に基づいてWeb要素を見つけることができると言えます。
Selenium4には5つのロケーターが追加されています。
- 未満(): 指定された要素の下にあるWeb要素。
- toLeftOf(): 指定された要素の左側にあるターゲットWeb要素。
- toRightOf(): 指定された要素の右側に表示されるターゲットWeb要素。
- 上記(): 指定された要素の上にあるWeb要素。
- near(): 指定された要素から離れている(約50ピクセル)Web要素をターゲットにします。
注意: 上記のすべての相対ロケーターメソッドは、「withTagName」メソッドをサポートしています。
以下の例は、toLeftof()およびbelow()ロケーター用です。
WebElement book; book = driver.Findelement(RelativeLocators.withTagName(“li”).toLeftOf(By.id(“pid1”)) .below(By.id(“pid2”))); String id1=book.getAttribute (“id1”);
以下の例は、toRightOf()およびabove()ロケーター用です。
Windows10でepsファイルを表示する方法
WebElement book1; book1 = driver.Findelement(RelativeLocators.withTagName(“li”).toRightOf(By.id(“pid1”)) .above(By.id(“pid2”))); String id2=book1.getAttribute (“id2”);
#6)Chrome開発ツール:
Seleniumの新しいバージョンでは、APIにいくつかの内部変更が加えられています。 Selenium 3の初期の段階では、ChromeドライバーはリモートWebドライバークラスに直接拡張されています。しかし、現在Selenium 4では、ChromeドライバークラスはChromiumドライバーに拡張されています。 Chromium Driverクラスには、開発ツールにアクセスするための事前定義されたメソッドがいくつかあります。
注意: Chromium Driverは、リモートWebドライバークラスを拡張します。
APIを使用することで、次の操作を実行できます。
- ネットワークオフラインを有効にする
- ネットワークオンラインを有効にする
- コンソールログを取得する
- Load InsureWebサイト
結論
このチュートリアルでは、Selenium 4の新しいバージョンの概要、Selenium Grid、IDE、およびSeleniumWebDriverに関連するいくつかの今後の機能について説明しました。
Chrome開発ツールであるRelativeLocatorについても簡単に説明しました。 Selenium 4には、ブラウザーのサポート、ドキュメント、UIなど、多くのことが期待できます。
著者:この記事は、ソフトウェア品質とテストフレームワークの構築に7年以上の経験を持つAkankshaKによって書かれています。
推奨読書
- 30以上の最高のSeleniumチュートリアル:実際の例でSeleniumを学ぶ
- SeleniumIDEダウンロードのインストールとコア機能の概要
- Selenium WebDriverの概要– Seleniumチュートリアル#8
- ChromeDriver Seleniumチュートリアル:ChromeでのSeleniumWebdriverテスト
- Seleniumスクリプトを作成するためにFirebugを使用する方法-Seleniumチュートリアル#4
- ヘッドレスオートメーション用のSeleniumPhantomJSチュートリアル
- Seleniumアクション:Seleniumでダブルクリックと右クリックを処理する
- Seleniumロケーター:SeleniumでXPathを使用してWeb要素を特定する(例)