2017-09-21 1 views
0

私はビジネス要件に合わせてappiumを使用してアンドロイドアプリの自動化に取り組んでいます(モバイル&錠剤)は、互いに(70%)異なる。このため、タブレットではいくつかの追加のコントロールが表示されますが、モバイルでは表示されません。また、IDまたはXPathも同じ要素の両方のデバイスで異なります。 例:モバイルとタブレットIDが異なる場合があります。モバイルではIDがほとんど表示されない場合は、テストで使用するロジックを提案してください

By headerNameTablet = By.id("com.android.appname:id/header_title"); 

By headerNameMobile = By.id("com.android.appname:id/titleView"); 

私は(セレンやJAVAを使用して)私のスクリプトを使用してアプリにログインした後に、モバイルとタブレットを区別し、グローバル変数名DEVICETYPEにテキスト「モバイル」または「タブレット」を記憶しています。

上記のシナリオを考慮して、実行時に必要なIDまたはXPathが呼び出されるようにテストメソッドを書く方法を提案してください。私が 'else if'条件を使用すると、コードを維持するのが非常に複雑になります。

ありがとうございます!

+0

単純な答えを使用して、同じテキストコンテンツを有するであろう場合、webelementsに対する相対位置に基づいていたXPathまたはcssSelectorを使用しようとします。 – kushal

+0

そのネイティブアプリケーションはハイブリッドではありません。この場合、相対的なxpathを使用することは可能です。タブレットの場合のみ表示されるがモバイルの場合は表示されない要素はどうでしょうか?この点についてもっと説明できますか?ありがとう! –

+0

あなたがtry..catchブロックと相対xpathでそれらを扱うことができるデバイスの1つの並べ替えにのみ表示される属性の場合、動作するはずです。 – kushal

答えて

0

モバイルとタブレットの両方が、IDベースのロケータを使用して停止し、By.name("your text")

関連する問題