AndroidとiOSのサポート
カテゴリ
TL;DR: Selenium 独自の AndroidDriver と iPhoneDriver は廃止し、Selendroid、iosdriver、Appium のいずれかを推奨します。Selenium 独自のモバイルドライバのいずれかを使用している場合は、これらの代替手段のいずれかを評価してください。
詳細バージョン
2007年、スティーブ・ジョブズはiPhone を発表し、モバイルウェブを単なる好奇心から、一般の人々が欲し、使うものへと変えました。現在の傾向では、モバイルウェブの利用はそう遠くない将来にデスクトップの利用を上回ると示唆されています。これは、モバイルウェブがあなたのサイトの未来の大きな部分を占めるようになり、モバイルデバイスでそれらをテストすることが非常に賢明なアイデアになるだろうと言うための長い道のりです。
Selenium プロジェクトは、iOS と Android の両方に対応した WebDriver 実装を開発することで、モバイルウェブの台頭に対応しました。iPhoneDriver (iPad でも動作) の最初の行は、2009 年初頭にプロジェクトに追加されました。AndroidDriver は 2010 年 6 月に追加され、主に Google のエンジニアによって開発されました。今日に至るまで、公式の Android SDK をダウンロードして、「Google WebDriver」をダウンロードできるオプションの 1 つとして見つけることができます。
モバイルドライバに関する最初の作業の後、興味深いことが起こりました。ドライバの実験的な拡張機能と修正が、selenium プロジェクトの外部で行われました。私自身が関与した最初のものの 1 つは、「nativedriver」でした。これは、ユーザーが使い慣れた WebDriver API を使用して、Android または iOS のネイティブ UI を操作できるようにするという斬新なアプローチを取りました。初めて見たとき、私は気が狂っていると思いましたが、それに取り組んでいるエンジニアはすぐにそれが理にかなっていると私を納得させました。そして、どうなったと思いますか? 彼らは正しかったのです。
悲しいことに、アイデアが実行可能で実用的であることが証明された後、NativeDriver プロジェクトは勢いを失いましたが、Selendroid、iosdriver、Appium という、アイデアを取り入れてモバイルテストソフトウェアの非常に有能な作品を作成するために実行した 3 つのプロジェクトの舞台を設定しました。これら 3 つはすべて、WebDriver API に精通したテスターが iOS および Android 上のモバイルアプリをテストできるようにします。ネイティブアプリだけでなく、ハイブリッドアプリや純粋なウェブベースのアプリも同様です。最近では、Windows Phone WebDriver も加わり、WinPhone 8 上のモバイルウェブアプリのテストが可能になりました。
これらのプロジェクトはすべて共通点があります。それらは、メインの selenium プロジェクトの同等のコードよりもはるかにアクティブで、より有能で、さらに推進されています。実際、AndroidDriver と iPhoneDriver の両方に貢献した selenium チームのメンバーの一部は、現在、これらの他のプロジェクトにも取り組んでいます。作業が進められています。ユーザーがテストの大幅な手直しを恐れることなく、ニーズに最も適切なフレームワークを選択できるように、異なるドライバ間の相互運用性を維持するために。
これは、Selenium プロジェクト内に既存の Android および iPhone ドライバを保持することがユーザーの役に立たないことを意味します。代替手段の方が優れており、プロジェクト内に「公式」ドライバを保持することは状況を混乱させます。さらに悪いことに、selenium 開発者はこれらのドライバの修正を行うのが遅く、関係者全員にとって非常に不満が残ります。このため、Selenium プロジェクトはこれらのドライバのコードをリポジトリから削除し、代替手段のいずれかを評価して使用することをお勧めします。
もちろん、コードはリポジトリの履歴に残り続けるため、自分でビルドしたい場合は、まだ可能です。iPhoneDriver を含む最後のバージョンは ef9d578 であり、Android ソースを含む最後のバージョンは 00a3c7d です。自分でビルドする必要がないように、そのリビジョンからビルドされた AndroidDriver のバージョンをダウンロードページにアップロードしました。
これらの変更は、プロジェクトとしてモバイルをサポートしないという意味ではありません。それは、モバイル WebDriver の最良の実装をサポートしているという意味であり、それらは Selenium プロジェクトの一部として作成されたものではないということです。