2016-04-15 7 views
3

私は、ネイティブのAndroidアプリのテスト自動化のためのAppiumの使用を調査し始めました。このアプリケーションでは、UIのXMLレイアウトのEditText制御のための次の宣言を含む:Appium getText()はアンドロイドを返します:EditTextのヒント値?

<EditText 
    android:id="@+id/inputText" 
    android:layout_width="fill_parent" 
    android:layout_height="0px" 
    android:layout_weight="0.5" 
    android:inputType="text|textMultiLine" 
    android:hint="Type or paste text here" 
    android:text="" /> 

アプリケーションが実行されると、それがヒント値を表示するので、のEditTextのテキスト値は明らかに空である(「タイプ又はここにテキストを貼り付ける ")。私のテストケースでは、このEditTextでgetText()を呼び出すと、返す戻り値は空の​​文字列ではありません。代わりに、EditTextのヒント値を返します(「ここにテキストを入力または貼り付ける」)。 Appiumを初めて使用したので、これが予想される動作である可能性があります。しかし、その場合、getText()がヒントの値を返す場合、EditTextのテキスト値が実際には空であると主張するにはどうすればよいですか? getText()で返される値が「ここにテキストを入力または貼り付け」と等しいと主張できますが、ユーザーが実際にそのテキストを正確に入力した場合、その違いをどのように知ることができますか?

答えて

1

getText()は、UIスレッドによってレンダリングされるときに表示される要素(ケースandroid:hint)に割り当てられた値を返します。あなたのケースでアサートする

、ヒントは、ユーザーが要素のヒントとして同じ名前を設定することができれば、あなたが今

if(element.getText().equals("Type or paste text here")) 
    // hint being displayed 
else if(element.getText() == "") 
// the text is left empty 

としてテキストを確認することができるように、動的に、設定されていないテキストです。これを避けるには、おそらくアプリケーションに優れた設計を提供する必要があります。 Appiumは、アプリケーションUIに提供された情報をあなたに提供する媒体にすぎません。

+0

ありがとうございます!あなたはこれが期待された行動であり、それが大いに役立つことを私に確認しました。 – user685869

関連する問題