iOS UIAutomation中alert处理方法

转载 2015年11月19日 10:10:39

转自:http://blog.csdn.net/close_marty/article/details/37907323

测试的过程中弹出Alert不会中断测试的执行,因为测试工具会自动处理弹框,它的处理方法就是点击弹框的取消按钮。

贴上一段代码

[javascript] view plaincopy
  1. UIATarget.onAlert = function onAlert(alert){  
  2.   var title = alert.name();  
  3.   var message = alert.scrollViews()[0].staticTexts()[1].name();  
  4.   UIALogger.logWarning("Alert with title " + title + new Date().getTime());  
  5.   if (title == "努力加载中,是否继续等待?"){  
  6.     alert.buttons()[1].tap();  
  7.     return true;  
  8.   }  
  9.   if (message == "抱歉,加载详情页时间过长") {  
  10.     alert.buttons()["取消"].tap();  
  11.     detailFail = 1;  
  12.     return true;  
  13.   }  
  14.   if (message == "抱歉,获取视频信息失败,请重试") {  
  15.     alert.buttons()["确定"].tap();  
  16.     detailFail = 1;  
  17.     return true;  
  18.   }  
  19.   return false;         
  20. }  

我们通过自己指定的onAlert()这么一个function给automation的UIATarget.onAlert,实现了对弹框的手动处理。

alert.name()通常可以获取到弹框的内容,当然有时候弹框里面会有多个staticTexts,可以具体alert.logElementTree()查看它的构成。

然后我们可以通过alert.buttons(),对指定的按钮进行操作。

这个方法默认的返回是false,这就是告诉automation "这个弹框我不处理,交给你来",

return true 就是 “这个弹框我已经处理过了,你就不要再管了”。


这个方法是不需要手动调用的,当有弹框出现时,automation会自动调用这个方法,所以你只需要在你的脚本开头,写上这个方法就可以了。


***在写UIAutomation相关代码时,由于有时候会开启instruments,这时再用instruments -w -t -e的方式运行脚本就会产生异常:UIAScriptAgentSignaledException ,所以看到该异常时关掉instruments即可。

iOS Monkey工具初探

因项目准备对外推广,应用的性能及稳定性成功重点关注对象。一方面针对 Bugly 收集到的 Crash 信息逐个分析;另一方面希望加强用户随机性 Crash 的分析,这就要使用 Monkey Test。...

UIAScriptAgentSignaledException

http://stackoverflow.com/questions/15031758/error-running-ui-automation-from-command-line

iOS用WKWebView与JS交互获取系统图片及WKWebView的Alert,Confirm,TextInput的监听代理方法使用,屏蔽WebView的可选菜单

最近做一个项目,开始是使用WebView与JS交互的,由于内存管理方面WebView欠佳。WKWebVIew的内存线程管理好,所以选择使用 WKWebVIew(使用WKWebView 的缺点在于,这个...

iOS中,访问系统隐私权限时修改alert文案的方法

开发过程中,难免会涉及到访问相册、相机、麦克风、通讯录等需要进行隐私权限授权的功能。 系统默认的alert比较生硬,像下图这样: 其实我们是可以向其中加入自定义的文案的。 加入之...
  • tcthek
  • tcthek
  • 2016年01月26日 15:03
  • 3789

iOS用WKWebView与JS交互获取系统图片及WKWebView的Alert,Confirm,TextInput的监听代理方法使用,屏蔽WebView的可选菜单

http://blog.csdn.net/boyqicheng/article/details/52812968 最近做一个项目,开始是使用WebView与JS交互的,由于内存管理方面Web...

Android webview中定制js的alert,confirm和prompt对话框的方法 (处理webview 带网站地址的弹出框)

在Android的webview中定制js的alert,confirm和prompt对话框的方法 http://618119.com/archives/2010/12/20/19...

BW:处理链报错自动邮件通知(方法2:Alert)

上次研究通过Monitor来监控处理链报错的方法时,查到了不少关于Alert的东西,今天来探讨怎么用这种方法来达到想要的结果。      Step 1:SU01,配置上用户的Email地址,同上次  ...
  • lht1717
  • lht1717
  • 2011年06月16日 10:51
  • 236

alert日志中出现Private Strand Flush Not Complete的处理方法

还是南京那个客户的库,alert.log日志还报了如下的错误: Fri Oct 17 19:59:51 2014 Thread 1 cannot allocate new log, sequen...

IOS自动化测试之UIAutomation学习

一、软件安装   首先通过appstore下载安装Xcode开发工具,当前编写文档时最新版本为4.5.1   二、通过Xcode工具编写运行测试脚本   说明:如果是在IOS模拟器上运行测试用例...

IOS自动化测试之UIAutomation学习(录制)

一、软件安装 首先通过appstore下载安装Xcode开发工具,当前编写文档时最新版本为4.5.1   二、通过Xcode工具编写运行测试脚本 说明:如果是在IOS模拟器上运行测试用例,需要...
  • WHACKW
  • WHACKW
  • 2015年04月07日 09:30
  • 958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS UIAutomation中alert处理方法
举报原因:
原因补充:

(最多只允许输入30个字)