uiautomator 代码记录 : 随机发送短信
package sms_test;
import java.lang.*;
import java.util.Random;
import javax.microedition.khronos.egl.EGL10;
import java.io.File;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import android.R.plurals;
import android.os.RemoteException;
import com.android.uiautomator.core.UiCollection;
import com.android.uiautomator.core.UiObjectNotFoundException;
public class SMS_Test extends UiAutomatorTestCase {
String startsms = "com.android.mms/com.android.mms.ui.ConversationList";
public void startapp (String ojb){
StringBuffer app = new StringBuffer();
app.append("am start -n ");
app.append(ojb);
try{
Process process = Runtime.getRuntime().exec(app.toString());
process.waitFor();
}catch(Exception e){
e.printStackTrace();
System.out.println("NG! Start apk failed....");
}
}
public void test_SMS_Test() throws UiObjectNotFoundException,RemoteException{
String a = "abcdefg";
String b = "1234567";
String c = "aaabbccddeeffgg112233445566778899";
String d = "#@+=-)(4451318fdggd";
String e = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddd"
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd";
String a1 = "10086";
String a2 = "10086101";
String a3 = "10010";
String SMS_content[] = {a,b,c,d,e};
String Send_the_number[] ={a1,a2,a3};
try{
for(int i=0; i<10 ;i++){
sleep(1000);
UiDevice.getInstance().sleep();
if(UiDevice.getInstance().isScreenOn()){
System.out.println("The screen is on!");
}else{
UiDevice.getInstance().wakeUp();
sleep(1000);
}
UiObject Unlocked = new UiObject(new UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"));
assertTrue("Unlocked Exception!", Unlocked.exists());
Unlocked.swipeUp(20);
sleep(1000);
startapp(startsms);//启动短信
System.out.println("start apk....");
UiObject sms_1 = new UiObject(new UiSelector().resourceId("android:id/list"));
sms_1.waitForExists(5000);
assertTrue("sms_1 Exception!", sms_1.exists());
UiObject new_SMS = new UiObject(new UiSelector().resourceId("com.android.mms:id/action_compose_new").description("新信息"));
assertTrue("new_SMS Exception!",new_SMS.exists());
new_SMS.clickAndWaitForNewWindow();
UiObject Enter_the_number = new UiObject(new UiSelector().text("输入名字或号码")
.resourceId("com.android.mms:id/recipients_editor"));
assertTrue("Enter_the_number Exception!", Enter_the_number.exists());
Enter_the_number.click();
sleep(2000);
Random r = new Random();
int e1=r.nextInt(3);
Enter_the_number.setText(Send_the_number[e1]); //输入发送号码
UiObject Enter_the_content = new UiObject(new UiSelector().text("输入文本信息")
.resourceId("com.android.mms:id/embedded_text_editor"));
assertTrue("Enter_the_content Exception!",Enter_the_content.exists());
sleep(5000);
Enter_the_content.click();
sleep(2000);
Random k = new Random();
Enter_the_content.setText(SMS_content[k.nextInt(5)]); //输入信息内容
sleep(5000);
UiObject send = new UiObject(new UiSelector().resourceId("com.android.mms:id/send_button_sms"));
assertTrue("send Exception!", send.exists());
send.clickAndWaitForNewWindow();
UiObject CMCC = new UiObject(new UiSelector().text("中国移动")
.resourceId("android:id/title"));
UiObject CUCC = new UiObject(new UiSelector().text("中国联通").resourceId("android:id/title"));
assertTrue("CMCC Exception!...",CMCC.exists());
assertTrue("CUCC Exception!...",CUCC.exists());
if(a1.equals(Send_the_number[e1])){ //判断输入的号码是联通号码还是移动号码
CMCC.clickAndWaitForNewWindow();
System.out.println("CMCC send...");
}else if(a2.equals(Send_the_number[e1])){
CMCC.clickAndWaitForNewWindow();
System.out.println("CMCC send...");
}else if(a3.equals(Send_the_number[e1])){
CUCC.clickAndWaitForNewWindow();
System.out.println("CUCC send...");
}
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiObject Letter = new UiObject(new UiSelector().resourceId("com.android.mms:id/mark_as_read_btn").text("关闭"));
boolean boolean_letter = Letter.waitForExists(30000);
if(boolean_letter){
Letter.clickAndWaitForNewWindow();
}
else {
UiDevice.getInstance().pressBack();
}
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
}
}catch(UiObjectNotFoundException e5){
e5.printStackTrace();
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
}
}
}
uiautomator 代码记录 : 随机发送短信的更多相关文章
- 超实用的JavaScript代码段 Item4 --发送短信验证码
发送短信验证码 实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”.“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送验证码”.在倒计时期间按钮为禁用状态 . 第一步.获取按钮.绑定事件 ...
- java发送短信--httpclient方式
最近头让我写个发送短信的java程序检测BI系统,检查数据库是否有异常发送,有则发送短信到头的手机里.这里我直说httpclient方式的get请求方式,并且已经有方式的短信的接口了,所以只要再加上参 ...
- Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘
apps目录的contacts应用(有读取通话记录功能),是访问provider目录的provider.contacts应用(有暴露通话记录),所以要阅读Android操作系统源码-->pack ...
- Android发送短信核心代码
核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...
- 使用短信猫发送短信java代码
短信猫简单配置:https://www.cnblogs.com/Big-Boss/p/9699880.html 发送短信: package utils; import org.smslib.AGate ...
- js 发送短信倒计时、秒杀倒计时实现代码
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- js 忘记密码发送短信记录cookie
<div class="forgetPwdBox" style="display:none"> <div class="forTit ...
- WPF MVVM下做发送短信小按钮
最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...
- a标签的妙用-拨打电话、发送短信、发送邮件
前端时间在做手机WAP网站时,遇到需要点击页面上显示的电话号能直接拨号的需求,查找资料发现可以使用html的a标签完美实现该需求!记录下来以备后用...... 目前主流手机浏览器对H5的支持已经很不错 ...
随机推荐
- MySQL状态变量详解
MySQL状态变量详解 mysql的状态变量(status variables)记录的mysql服务器的运行状态信息.查看语法如下: SHOW [GLOBAL | SESSION] STATUS; S ...
- GTX的生成(包括COMMON)
GTX的生成(包括COMMON) 1.每一个GTX Quad需要一个GTX common,同时GTX common只包含有QPLL,不包含CPLL. 2.kintex-7设备只支持GTX 3.参考时钟 ...
- RGB Resampler IP核的测试
关于RGB Resampler IP核的测试 1.RGB Resampler功能描述 将输入的RGB数据流转换成其它格式的RGB数据流. 2.功能验证 设置源图像像素数据为:3X4格式. 设置RGB ...
- Winfrom控件使用
1.Lablelable添加图片,解决图片和字体重叠? Text属性添加足够空格即可,显示效果如下所示: 2.根据窗体名称获取窗体并显示到指定panel? Label item = sender as ...
- uoj#119. 【UR #8】决战圆锥曲线
http://uoj.ac/problem/119 可以认为数据基本随机,于是可以直接用线段树维护,对每个询问在线段树上进行剪枝搜索. #include<bits/stdc++.h> ty ...
- java高并发编程(四)高并发的一些容器
摘抄自马士兵java并发视频课程: 一.需求背景: 有N张火车票,每张票都有一个编号,同时有10个窗口对外售票, 请写一个模拟程序. 分析下面的程序可能会产生哪些问题?重复销售?超量销售? /** * ...
- (转载)关于java多线程web服务器 以及相关资料转载
1.自己实现的简单的java多线程web服务器: https://blog.csdn.net/chongshangyunxiao321/article/details/51095149 自己实现一个简 ...
- PAT 甲级 1006 Sign In and Sign Out (25)(25 分)
1006 Sign In and Sign Out (25)(25 分) At the beginning of every day, the first person who signs in th ...
- go中的map[Interface{}]Interface{}理解
map里面的k,v支持很多的类型.对于go来说也是,go中有个接口的概念,任何对象都实现了一个空接口.那么我们把map里面的k,v都用interface去定义,当我们在使用这个map的时候,我们可以把 ...
- PHP——抽象类与接口的区别
在学习PHP面向对象时,都会在抽象类与接口上迷惑,作用差不多为什么还那么容易混淆,何不留一去一?但是事实上两者的区别还是很大的,如果能够很好地运用PHP的两个方法,面向对象的程序设计将会更加合理.清晰 ...