我们有一个iPad应用程序,其中包括一个双列新闻阅读器。左侧视图包含新闻列表,其中一些链接直接链接到新闻,另一些推送另一个视图控制器与另一个新闻列表。这也会导致UIButton
被设置为导航栏的leftBarButtonItem
。如果我们处于第一级,则无法点按的简单图像将是leftBarButtonItem
。
我现在的目标是进行测试,以便在第一级抓取每条新闻。如果新闻指向第二级列表,则应点按导航栏中的UIButton
。
如果leftBarButtonItem
是“可点击的”,我如何查看?由于它可以是一个图像或一个按钮,如果它是图像,只需调用navigationBar().leftButton().tap()
就会导致错误。
如果有任何帮助,我也会使用调整库。
答案 0 :(得分: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 。 如果元素无效或将返回 [object UIAButton] 或 [object UIAImage] < toString()将返回 [object UIAElementNil] / em>的
答案 1 :(得分:0)
您只需使用
即可if (navigationBar().leftButton().exists)
{
navigationBar().leftButton().tap();
}
else
{
//do what you need.
}