2016-10-20 10 views
0

私は、Appiumを使用してiOSアプリケーションのテストアルゴリズムを開発しています。このアルゴリズムを完全に実装するには、別の画面に移動したかどうかを確認する必要があります。または、何らかの操作を実行した後も同じ画面に表示されます。私は知っておく必要があります。なぜなら、すべての画面をAppiumの面で他のものと一意/異なるものにするのですか?Appium:2つの異なるiOS画面を区別する方法は?

すべての画面のpageSourceを見ると、ほとんどの画面にウィンドウ要素のxpath属性があることがわかりました。画面要素のxpathの値を使用して、他のユーザーから画面を一意にすることはできますか?または、画面のpageSourcesとの間で文字列比較を行う必要がありますか。それとも他に良い解決策がありますか?

答えて

1

xpathがこれに最適な解決策であるかどうかは不明です。通常、UIAWindowは同じままであり、開発者はこのUIAWindow内の異なるコンテナを使用して異なるスクリーンをレンダリングすることがあります。

ので、異なる画面を確認するために、あなたはこのコンテナが何であるかを把握する必要があり、あなたが新しい画面(すなわち、新たなコンテナ)に移動したときに、コンテナのプロパティが変更された場合表示される場合があります

あなたのアプリのユーザーであれば異なりますヘッダーを追加すると、このヘッダーを使用して画面が変更されているかどうかを確認できます。例:WhatsAppでは、上部に異なる人物が表示されます。したがって、この場合、人物の名前をヘッダーと見なすことができます。

これが機能しない場合は、他のコントロールの一部を確認するか、画面上のすべてのUIAStaticTextのリストを表示することができます。画面の変更中、UIAStaticTextのリスト全体が変更されることがあります。これは画面の変更を示すことができます。

0

私のオートメーションスイートの仕事では、一連の画面チェック手順を実装しました。私たちが画面を切り替えるたびに、その画面上でその画面に固有の要素に対するfind_elementコマンドを実行します。そうすれば、ボタンやオプションで新しい画面が表示された場合、私のテストは期待通りに失敗します。期待している要素が見つかると、テストスイートに最小限の時間が追加されます。

Anish Pillaiは、ヘッダーテキストがある場合はそれを使用することをおすすめしました。それ以外の場合は、特定のタブ、メニューテキスト、resource_id、またはページに関する独自のものであれば十分です。あなたがする必要があるのは、find_element呼び出しと失敗した場合の失敗メッセージです。