翻訳記事‎ > ‎

Selenium 3がやってくる

2016/10/08 22:35 に 戸田広 が投稿   [ 2016/10/09 3:15 に更新しました ]
[翻訳] 戸田

Selenium 3がやってきます! これを書いている時点では、「beta4」を3.0公式リリース前の最後のベータ版にするつもりです。何が変わるのか、皆さんのテストにどんな影響があるのかを私からお伝えします。

長くなるのでかんたんに

  • WebDriverユーザーにとっては、単なるバグフィックスであり、2.x系からのちょっとした更新となるでしょう。
  • Selenium Gridユーザーにとっても、バグフィックスかつ単なる更新となるでしょう。
  • Seleniumプロジェクトが積極的にサポートしているAPIは、いまやWebDriver APIだけになりました。
  • Selenium RC APIは「レガシー」パッケージに移されました。
  • Selenium RCを支えていたオリジナルコードは、WebDriverを裏で利用するものに置き換えられたうえで、「レガシー」パッケージに含まれています。
  • 時期的には偶然なのですが、MozillaはFirefox 48から、Selenium 2系か3系かに関わらずGeckoDriverが必要になるように変更を入れました。

ではもっと詳しく


2011年にSelenium 2.0をリリースしたとき、私たちは新しいWebDriver APIをご紹介し、移行をおすすめしました。もしあなたがWebDriver APIを使っているなら、Selenium 3.0はただのちょっとしたアップグレードです。公開されているWebDriver APIは何も変えませんでしたし、コードは基本的には2.x系最後のリリースと同じです。あなたがSelenium Gridを使っている場合も同様です。ほとんどの場合では、新しいjarファイルをざっと使う(または、Mavenの依存性設定を3.0.0に更新する)だけで終わりです。

Selenium 3への更新がこんなにぱっとしないのに、なぜ私たちはあえてこれをSelenium 3.0と呼ぶのでしょう? この問いに答えるためにまず、多少の経緯と、Seleniumが内部でどのように動いているのかをお伝えする必要があります。ごく初期のバージョンのSeleniumは、「ただの」非常に複雑なJavaScriptフレームワークであり、ブラウザー内で動作し、Selenium IDEを使っていればおなじみであろう表形式のテストを解釈するものでした。私たちはこれを「Selenium Core」と呼びます。このJavaScriptフレームワークはSelenium RCのオリジナル実装の基礎をなしていました(Selenium RCは最初のSelenium API一式で、すべてのメソッドや機能は「Selenium」インターフェース上にあり、今に至っては非推奨です)。時が経つにつれ、最新のWebテストのニーズはこれまで以上に複雑かつ洗練されたものになってきましたし、Selenium Coreはいまや以前ほどはニーズを満たせないものとなりました。

Selenium 3.0では、私たちはSelenium Coreのオリジナル実装を削除しました。古いRCインターフェースを使いたい方には、内部ではWebDriverを使っている別の実装を提供します。これはSelenium 2の一部機能としてリリースされていた「WebDriver-Backed Selenium」と同じものです。根幹の技術をSelenium CoreからWebDriverに変えたので、みなさんはRC利用の既存のテストにおいて問題になってしまっていた部分に気づくことでしょう。Seleniumスイートの移行で実際に手間となったのは、最小限のエンジニアリング作業で修正できる一般的なシステムの問題となります(つまり、問題はいくつかの場所に正常に分離されていて、修正可能になっているということです)。

私たちはまた、オリジナルのSelenium RC APIを、普段ダウンロードできるファイルから削除しました。Javaユーザーの方でSelenium RC APIが既存のテストの保守のために必要である場合は、依存性設定に「org.seleniumhq.selenium:selenium-leg-rc:3.0.0」(またはこれ以降!)が必要になります。どうしても必要でない限り、これは使わないことを強くおすすめします。Selenium IDEから表形式で出力されたテストを実行される方には、SeleniumプロジェクトのWebサイトからダウンロードできる新しいテストランナーをご用意しています。これは前のテストランナーと同じ引数で動かせますし、出力もまた同様に確保できるようにできるだけのことはしておきました。

SeleniumプロジェクトがSelenium 3.0を世に出すのと同時に、MozillaはFirefoxをより安全に・安定させるために内部を変更しましたが、これによりコミュニティが提供していたFIrefoxDriverはもう動かなくなってしまいました。したがって、テストでFirefoxを使うときは、ChromeDriverやEdge用MicrosoftWebDriverと同様にGeckoDriverを併用する必要があります。Selenium 2を使うときにもGeckoDriverを使わなければならなくなります−変わったのはSeleniumではなく、ブラウザーです。GeckoDriverは進化し続けているW3C WebDriver標準に基づくα版ソフトウェアです。みなさんが最良のテスト体験を得られるように全力でがんばっていますが、Firefoxでちゃんとテストできるようになるまでの道にはどうしてもいくつかのデコボコがあるのです。

今回のリリースはSeleniumのコミッターとコミュニティの多大な努力の集大成です。このプロセスに関わったすべての方、そしてSeleniumプロジェクトの成功に大きく寄与してくださった世界中のユーザーに感謝したいです。

Comments