Selenium 4 の新機能:なぜメジャーバージョンアップなのか?
カテゴリ
このシリーズの2番目の投稿では、サイモン・スチュワートが Selenium 4 の今後の展望と、このリリースがメジャーバージョンアップである理由について引き続き語ります。
前回の投稿で、Selenium プロジェクト全体の仕組みについて少し共有しました。さて、Selenium 4 と今後の展望について話し始めましょう。私が明確にすべきだと思うことの1つは、「なぜメジャーバージョン番号の引き上げなのか?」ということです。
時々私は、バージョン番号の引き上げの主な理由は、円周率の桁は無限であるものの、3.14 から 3.141 に移行したときに、人々が少し動揺したことだと冗談を言います。3.141.5 そして 3.141.59 への移行は、私たちがその特定のアイデアを推し進めたいと思った限界でした :)
もっと真面目な話、最初の理由は、改訂された Selenium IDE があることです。何年も前は、これは Firefox 専用でした。なぜなら、XPI 拡張機能メカニズム(Firefox 固有)を使用していたからです。現在では Web コンポーネントになり、Chrome、Firefox、および Web Components をサポートするその他のものにダウンロードできます。現在、Electron アプリとして書き換える作業が行われており、これにより IDE が実行されているネイティブ OS をより有効に活用できるようになります。その作業は主に Applitools で働く開発者によって推進されました。彼らは、SideX という会社によって Web Components を使用するように移行された元の Selenium IDE をベースに始めました。それは、コミュニティがうまく協力し合った素晴らしい例です。
次に、W3C WebDriver プロトコルを完全に採用し、元の自家製ワイヤプロトコルのサポートを廃止しました。Selenium が Web ブラウザと通信する方法は、事実上 HTTP 経由の JSON であるワイヤプロトコルを介して行われます。当初、これは有機的に成長し、物事を理解し、ブラウザに必要なことをさせようとしました。その元のプロトコルは、JSON をワイヤ上で話すため、JSON ワイヤプロトコルとして知られています(そして、私たちは非常に独創的な名前を考案するのが得意ではありません)。
その元のプロトコルは、W3C WebDriver プロトコルのベースであり、いくつかの粗いエッジを滑らかにし、プロトコルに必要な一貫性をもたらしました。標準化されたプロトコルが改善した2つの主要な領域には、セッション作成が含まれており、曖昧さを大幅に解消し、ユーザーアクションを指定するためのはるかに豊富な API を提供しました。
では、この W3C プロトコルの採用はあなたにとって何を意味するのでしょうか?正直に言うと、おそらくあなたにとってはあまり意味がないでしょう。最新のブラウザ(過去数年間にリリースされたもの)を使用している場合、実際には Selenium 3 で W3C プロトコルをすでに話していることがわかります。
では、プロトコルの方言を気にするのは誰ですか?サービスとして Selenium を提供する Sauce Labs のような企業について話すとき—彼らはそれを気にします。エコシステムは、これらの企業の技術担当者が W3C プロトコルを理解し、準拠していることを確認し、Selenium プロジェクトの担当者が必要に応じて支援とアドバイスを提供してきたため、この次のステップの準備ができています。
Selenium 4 のもう1つの良い点は、安定したユーザー向け API を確保するために最善を尽くしたことです。つまり、プロジェクトを Selenium 3 から Selenium 4 にアップグレードする場合、ドロップインアップグレードになるはずです。バージョン番号を変更して再コンパイルするだけで完了です。
ただし、注意すべきいくつかの注意点があります!主な注意点は、Selenium 3 の最後のバージョンでメソッドが非推奨になった場合、おそらく削除されているということです。メジャーバージョンアップの機会を利用して、それらを削除し、人々が通常目にすることのない舞台裏の内部をクリーンアップしました。あなたがソフトウェア開発者であれば、これは私たちが技術的負債を返済していることを認識するかもしれません :)
Selenium 4 のいくつかの新しいトリックについて説明する次の投稿にご期待ください。
これは元々 https://saucelabs.com/blog/whats-coming-in-selenium-4-why-the-major-version-bump に投稿されました