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 代码记录 : 随机发送短信的更多相关文章

  1. 超实用的JavaScript代码段 Item4 --发送短信验证码

    发送短信验证码 实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”.“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送验证码”.在倒计时期间按钮为禁用状态 . 第一步.获取按钮.绑定事件 ...

  2. java发送短信--httpclient方式

    最近头让我写个发送短信的java程序检测BI系统,检查数据库是否有异常发送,有则发送短信到头的手机里.这里我直说httpclient方式的get请求方式,并且已经有方式的短信的接口了,所以只要再加上参 ...

  3. Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘

    apps目录的contacts应用(有读取通话记录功能),是访问provider目录的provider.contacts应用(有暴露通话记录),所以要阅读Android操作系统源码-->pack ...

  4. Android发送短信核心代码

    核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...

  5. 使用短信猫发送短信java代码

    短信猫简单配置:https://www.cnblogs.com/Big-Boss/p/9699880.html 发送短信: package utils; import org.smslib.AGate ...

  6. js 发送短信倒计时、秒杀倒计时实现代码

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. js 忘记密码发送短信记录cookie

    <div class="forgetPwdBox" style="display:none"> <div class="forTit ...

  8. WPF MVVM下做发送短信小按钮

    最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...

  9. a标签的妙用-拨打电话、发送短信、发送邮件

    前端时间在做手机WAP网站时,遇到需要点击页面上显示的电话号能直接拨号的需求,查找资料发现可以使用html的a标签完美实现该需求!记录下来以备后用...... 目前主流手机浏览器对H5的支持已经很不错 ...

随机推荐

  1. mysql程序之mysqladmin详解

    mysqladmin命令 mysqladmin是执行管理操作的客户端.您可以使用它来检查服务器的配置和当前状态,以创建和删除数据库等 用法: mysqladmin [OPTIONS] command ...

  2. RSA读取密钥——使用openssl编程

    RSA是基于数论中大素数的乘积难分解理论上的非对称加密法.在此密码术中,使用公钥(public key)和私钥(private key)两个不同的密钥:公钥用于加密,它是向所有人公开的:私钥用于解密, ...

  3. [转]Eclipse快捷键 10个最有用的快捷键

    Eclipse快捷键 10个最有用的快捷键 5 4 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的 ...

  4. sort a given string

    my solution: function order(words){ var splitToArr = words.split(' '), len = splitToArr.length, newA ...

  5. iwebshop (: Cannot use object of type stdClass as array in)

    今天在PHP输出一个二维数组的时候,出现了“Fatal error: Cannot use object of type stdClass as array in……”. 这个二维数组是这样的: Ar ...

  6. XBOX360更新游戏封皮(FSD自制系统)

    第一步,请记下上图左下角的IP地址第二步,打开电脑IE浏览器,输入“第二步”你记下的IP地址“回车”然后,就如下图所示了. 输入账号:f3http 密码:f3http 进入,然后你就进到你的360 F ...

  7. sysroot和prefix

    --with-sysroot用来指定系统的root.该选项主要用于新系统(比如LFS)构建或交叉编译.比如你的LFS的root在/mnt/lfs,那么configure时指定--with-sysroo ...

  8. ALGO-119_蓝桥杯_算法训练_寂寞的数

    问题描述 道德经曰:一生二,二生三,三生万物. 对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和.例如,d()=++=, d()=++++=. 因此,给定了任意一个n作为起点,你可 ...

  9. bzoj4948: World Final2017 A

    求简单多边形内的最长线段长度 显然存在一组最优解,使其所在直线经过多边形的两个端点,枚举这两个端点,求出直线和多边形的有效交点,从而得出直线有哪些部分在多边形内(含边界). 由于多边形的一些边可能与直 ...

  10. Redis集群事物提交异常Multi-key operations must involve a single slot

    redis做完集群后不同键在同一事物中提交,因为key的hash计算结果不同不能分配到同一个分片上,因此出现此异常. 解决方案:在本次事物的key内添加"{tag}",这时redi ...