9

我们有一个包含两栏新闻阅读器的 iPad 应用程序。左视图包含新闻列表,其中一些直接链接到新闻,一些推送另一个带有另一个新闻列表的视图控制器。这也将导致UIButton设置为leftBarButtonItem导航栏的。如果我们在第一层,一个无法点击的简单图像将是leftBarButtonItem.

我现在的目标是进行一项能够挖掘第一级每条新闻的测试。如果新闻指向二级列表,则应点击UIButton导航栏中的 。

如果是“可点击的”,我该如何检查leftBarButtonItem?由于它可以是图像也可以是按钮,如果是图像,则仅调用navigationBar().leftButton().tap()会导致错误。

如果有任何帮助,我也在使用 tuneup 库。

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]

也尝试使用苹果文档:http: //developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIAElementClassReference/UIAElement/UIAElement.html

于 2012-07-09T09:14:49.677 回答
0

你可以简单地使用

if (navigationBar().leftButton().exists)
{
     navigationBar().leftButton().tap();
}
else
{
     //do what you need.
}
于 2016-02-10T05:06:36.017 回答