老李分享:接电话之uiautomator 1
2016-01-07 17:39
531 查看
老李分享:接电话之uiautomator
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。
1.UiWatcher
该接口中只有一个方法public abstract boolean checkForCondition ()
当我们通过UiSelector匹配控件的时候,如果失败后,会进入该方法进行验证。意思只要我们的控件找不到,都会进入该方法中,那么我们就可以在该方法中判断是否有电话打进来。首先我们去查看有电话打进来的界面,找到一个可以确定是接听界面就行。我们以拒绝接听按钮为标识(不缺钱的可以用接听电话为标识)。
case的写法
public class InCallTest extends UiAutomatorTestCase {private static final long TIME_OUT = 10 * 60 * 1000;
private long currentTime;
private boolean flag = true;
long eslcape = 0;
public void test_Call() throws InterruptedException,
UiObjectNotFoundException {
UiWatcher inComingWatcher = new MyWatcher();
getUiDevice().registerWatcher("来电", inComingWatcher);
getUiDevice().pressBack();
UiObject dialButton = new UiObject(
new UiSelector()
.resourceId("com.android.sprdlauncher1:id/workspace"));
System.out.println("waiting for incoming");
currentTime = System.currentTimeMillis();
while (flag && eslcape < TIME_OUT) {
dialButton.clickAndWaitForNewWindow();
eslcape = System.currentTimeMillis() - currentTime;
}
assertFalse("没有收到来电", flag);
}
class MyWatcher implements UiWatcher {
@Override
public boolean checkForCondition() {
UiObject inCall = new UiObject(
new UiSelector()
.resourceId("com.android.dialer:id/IncomingCallRejectButton"));
while (eslcape < TIME_OUT) {
if (inCall.exists()) {
System.out.println("you have a call");
try {
inCall.clickAndWaitForNewWindow();
flag = false;
return true;
} catch (UiObjectNotFoundException e) {
e.printStackTrace();
}
}
eslcape = System.currentTimeMillis() - currentTime;
}
return false;
}
}
}
相关文章推荐
- 操作和操作队列 NSOperation和NSOperationQueue
- configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
- pillow jpeg is required unless explicitly disabled using --disable-jpeg
- UI组件之TextView及其子类
- ios错误ignoring file xxx missing required architecture x86_64 in file
- java使用soapui解析wsdl
- IOS UITextview实现聊天表情输入框
- Android跑马灯Marquee
- 182,UIButton继承UIControl,UIControl中常用的属性和方法
- Photos(PHAssetCollectionChangeRequest)
- Photos(PHCollectionListChangeRequest)
- IEnumerable和IQueryable的区别
- 用Zoho Recruit轻松发面试反馈
- Qt 5入门指南之Qt Quick编程示例
- UIPickerView选择器的使用方法
- easyui汉化啊!
- Retrofit之Query注解
- Retrofit之Query注解
- iOS开发之UIKit类继承图
- Fuel部署OpenStack架构分析