1

Robotium Solo 4.0 を使用して、Android アプリの機能テストを作成しています。次のシーケンスで問題が発生しています。Nexus 4 で実行しています。

View cartIcon = solo.getView(R.id.cartBtn);
solo.clickOnView(cartIcon);

//Animation happens in app here for about 5 seconds before the email/password boxes are visible

solo.typeText((EditText)solo.getView(R.id.emailEdit), LOGIN_EMAIL);
solo.typeText((EditText)solo.getView(R.id.passwordEdit), LOGIN_PASSWORD);


//Execution pauses here for 30 seconds or so, then picks up at normal speed where it left off.
solo.clickOnView((Button)solo.getView(R.id.loginBtn), true);

上記のコメントでわかるように、ログイン画面でログイン メールとパスワードを入力した後、テストの実行が長時間一時停止し、最終的にログイン ボタンがクリックされて通常どおり実行が続行されます。誰かがこれに対する解決策を持っていますか?

アップデート

注意すべきことの 1 つは、cartIcon をクリックした後、emailEdit および passwordEdit EditText ビューが使用可能になる前に、次のアクティビティで完了するのに約 5 秒かかるアニメーションがあることです。Robotium がこれらのフィールドに入力しようとするのが早すぎて失敗し、次に進む前にタイムアウトを待っているのではないかと思っています。

電子メールとパスワードを入力する前に、solo.waitForText("Login") を実行しようとしましたが、役に立ちませんでした。他のアイデアはありますか?

解決

おっと-私はばかです。R.id.emailEdit と R.id.passwordEdit は間違った要素であり、このページにはありませんでした。デバッグしたところ、両方が null であることに気付きました。これにより、Robotium が処理を続行する前にタイムアウトを待機するようです。適切な要素 ID に交換した後、すべてが期待どおりに機能します。

null ビューを操作しようとしたときに Robotium が例外をスローしたとしたら、それは素晴らしいことです。

4

0 に答える 0