我们有一个iPad应用程序,其中包含一个两列的新闻阅读器.左视图包含一些新闻的列表,其中某些链接直接发布到新闻,有些则将另一个视图控制器与另一个新闻列表.这也将导致将UIButton设置为导航栏的leftBarButtonItem.如果我们处于第一级,那么无法轻拍的简单图像就是leftBarButtonItem.
我的目标是要测试一下水龙头上的每一个消息.如果一个消息导致二级列表,它应该在导航栏中点击UIButton.
如何检查,如果leftBarButtonItem是“tappable”?因为它可以是图像或按钮,只需调用navigationBar().leftButton().tap()将导致错误,如果它是一个图像.
如果没有任何帮助,我也使用了调优库.
解决方法
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.
如果元素无效或将返回[对象UIAButton]或[对象UIAImage],toString()将返回[object UIAElementNil].