首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAutomation:在攻丝前检查元素是否存在

UIAutomation:在攻丝前检查元素是否存在
EN

Stack Overflow用户
提问于 2012-07-08 15:04:59
回答 2查看 7.9K关注 0票数 9

我们有一个iPad应用程序,其中包括一个两栏新闻阅读器。左视图包含新闻列表,其中一些链接直接指向新闻,而有些则使用另一个新闻列表推送另一个视图控制器。这还将导致将UIButton设置为导航栏的leftBarButtonItem。如果我们是在第一级,一个简单的图像,不能点击将是leftBarButtonItem

我现在的目标是进行一次测试,从第一层开始挖掘每一条新闻。如果新闻导致第二级列表,它应该点击导航栏中的UIButton

我如何检查,如果leftBarButtonItem是“可”的?因为它既可以是图像,也可以是按钮,只要调用navigationBar().leftButton().tap()就会导致错误,如果它是图像的话。

如果有任何帮助的话,我也在使用调谐器库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-09 09:14:49

UIAutomation中的几乎所有元素都可以被挖掘。无论是图像、视图还是按钮,都不重要。如果您试图点击的对象无效,您将得到一个错误。如何检查:

代码语言:javascript
复制
if ( navigationBar().leftButton().checkIsValid() )
{
     navigationBar().leftButton().tap();
}
else
{
     //do what you need.
}

或者,您可以检查您试图点击的对象是否是按钮(这不是最好的方法,但它可以工作):

代码语言:javascript
复制
if ( navigationBar().leftButton().toString() == "[object UIAButton]" )
{
    navigationBar().leftButton().tap();
}
else
{
     //do what you need.
}

checkIsValid()可用于所有UI元素。如果存在对象,则返回true。如果元素无效,toString()将返回对象UIAElementNil,或者返回对象UIAButton或对象UIAImage。

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

票数 17
EN

Stack Overflow用户

发布于 2016-02-10 05:06:36

您可以简单地使用

代码语言:javascript
复制
if (navigationBar().leftButton().exists)
{
     navigationBar().leftButton().tap();
}
else
{
     //do what you need.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11384106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档