9

2列のニュースリーダーを含むiPadアプリがあります。左側のビューにはニュースのリストが含まれており、ニュースに直接リンクしているものと、別のニュースのリストで別のViewControllerをプッシュしているものがあります。これにより、ナビゲーションバーのUIButtonとしても設定されます。leftBarButtonItem私たちが最初のレベルにいる場合、タップできない単純な画像はになりますleftBarButtonItem

私の目標は、最初のレベルですべてのニュースを利用するテストを行うことです。ニュースが第2レベルのリストにつながる場合はUIButton、ナビゲーションバーのをタップする必要があります。

leftBarButtonItemが「タップ可能」であるかどうかを確認するにはどうすればよいですか?画像でもボタンでもかまいませんので、画像の場合は呼び出すだけでnavigationBar().leftButton().tap()エラーになります。

それが助けになるなら、私もチューンアップライブラリを使用しています。

4

2 に答える 2

17

UIAutomation のほぼすべての要素をタップできました。イメージ、ビュー、ボタンのいずれであっても問題ありません。タップしようとしているオブジェクトが無効な場合、エラーが発生します。確認方法:

if ( navigationBar().leftButton().checkIsValid() )
{
     navigationBar().leftButton().tap();
}
else
{
     //do what you need.
}

または、たとえば、タップしようとしているオブジェクトがボタンであるかどうかを確認できます (最善の方法ではありませんが、機能します)。

if ( navigationBar().leftButton().toString() == "[object UIAButton]" )
{
    navigationBar().leftButton().tap();
}
else
{
     //do what you need.
}

checkIsValid()は、すべての UI 要素で使用できます。オブジェクトが存在する場合は trueを返します。toString()は、要素が無効な場合は [object UIAElementNil] を返すか、[ object UIAButton]または[object UIAImage]を返します。

また、Apple のドキュメントを使用してみてください: http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIAElementClassReference/UIAElement/UIAElement.html

于 2012-07-09T09:14:49.677 に答える