IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Appium+Eclipse+夜神模拟器 实现QQ打电话功能 -> 正文阅读

[移动开发]Appium+Eclipse+夜神模拟器 实现QQ打电话功能

在上篇文章中记录了各方面环境的问题,这次与上次不同的就是这次是用夜神模拟器来指定联系人打QQ电话
一、夜神模拟器配置:
在夜神模拟器上下载一个QQ,在QQ官网上就有,可自行下载。
二、打开Appium服务器、打开夜神模拟器,打开dos窗口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、在dos窗口中连接夜神模拟器:
如果经常连接,那么打开模拟器,在dos窗口使用adb devices命令就能搜索到,不然就话,就要切换到夜神安装目录下,使用命令连接:
在这里插入图片描述三、在eclipse工具上编写代码
在测试用例模中:

package com.testQQTel;

import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AndroidKeyCode;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileBy.ByAndroidUIAutomator;
import io.appium.java_client.TouchAction;

public class TestCase {
	DesiredCapabilities dc;
	AppiumDriver driver;
	@Before
	public void setUp(){
		//1、创建DesiredCapabilities对象
	    dc = new DesiredCapabilities();
		//2、设置属性
//		dc.setCapability("deviceName", "MYQNW20507042786");
	    dc.setCapability("deviceName", "127.0.0.1:62001");
		dc.setCapability("platformName", "Android");
		dc.setCapability("appPackage", "com.tencent.mobileqq");
		dc.setCapability("appActivity", ".activity.SplashActivity");
		//设置appium可以输入中文
		dc.setCapability("unicodeKeyboard", "true");
	}
	
	@Test
	public void testQQTel() throws Exception{
		driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), dc);
		//隐式等待
		driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
		System.out.println("开始执行啦");
		//1、点击同意协议
		driver.findElement(By.id("com.tencent.mobileqq:id/dialogRightBtn")).click();
		
		//2、点击登录按钮
		driver.findElement(By.id("com.tencent.mobileqq:id/btn_login")).click();
		
		driver.findElementByAccessibilityId("请输入QQ号码或手机或邮箱").clear();
		driver.findElementByAccessibilityId("请输入QQ号码或手机或邮箱").sendKeys("QQ账号");
		driver.findElement(By.xpath("//android.widget.EditText[@content-desc=\"密码 安全\"]")).clear();
		driver.findElement(By.xpath("//android.widget.EditText[@content-desc=\"密码 安全\"]")).sendKeys("QQ登录密码");
	
		//勾选 已阅读协议....
		driver.findElement(By.id("com.tencent.mobileqq:id/q6i")).click();
		//成功 登录
		driver.findElement(By.id("com.tencent.mobileqq:id/login")).click();
		//搜索联系人
//		driver.findElement(By.id("com.tencent.mobileqq:id/kag")).click();
		driver.findElement(By.id("com.tencent.mobileqq:id/et_search_keyword")).sendKeys("刘五杠");
		Thread.sleep(5000);
		//点击搜索到的结果
		TouchAction action  = new TouchAction(driver);
     	action.press(500, 300).release().perform();
     	Thread.sleep(3000);

        // 打电话之前,发送消息    	
        driver.findElement(By.id("com.tencent.mobileqq:id/input")).sendKeys("姐姐要打电话啦");   	driver.findElement(By.id("com.tencent.mobileqq:id/fun_btn")).click();
     	Thread.sleep(2000);
       //点击 + 号
     	driver.findElement(By.id("com.tencent.mobileqq:id/gny")).click(); 
     	System.out.println("快要打电话啦");    	
     	Thread.sleep(2000);
       //点击电话按钮
     	driver.findElement(By.id("com.tencent.mobileqq:id/dcf")).click();
       //提醒授权,两项都允许
     	driver.findElement(By.id("com.android.packageinstaller:id/permission_allow_button")).click();
     	driver.findElement(By.id("com.android.packageinstaller:id/permission_allow_button")).click();
       //发送萌萌表情
       //driver.findElement(By.id("com.tencent.mobileqq:id/gnb")).click();
       //Thread.sleep(2000);
       //driver.findElementByAccessibilityId("卖萌").click();
       //driver.findElement(By.id("com.tencent.mobileqq:id/fun_btn")).click();  
       System.out.println("等待结束");	
}
	
	@After
	public void tearDown(){
		driver.quit();
	}
}

在执行测试用例的main方法中:

package com.testQQTel;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Result result = JUnitCore.runClasses(TestCase.class);
		for(Failure failure:result.getFailures()){
			System.out.println(failure.toString());
		}
		System.out.println(result.wasSuccessful());
	}

}

最终执行结果:
在控制台:
在这里插入图片描述
在模拟器:
在这里插入图片描述
在这里插入图片描述
通话成功,没有手机也能打QQ电话啦。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:02:21  更:2022-03-21 21:02:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 18:27:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码