环境配置需求:
1、jdk 这里使用的是jdk1.8
2、Android SDK
3、Appium 使用的是 Appium-desktop 这是款桌面集成的Appium 操作方便简单

4、开发工具 Eclipse
5、nodejs: https://nodejs.org/en/
6、夜神安卓模拟器
7、测试教程使用的微信 apk下载地址:http://gdown.baidu.com/data/wisegame/66fa6a9b0c42e77d/3f7e66fa6a9b0c42e77dda78f05e9812.apk
8、代码示例测试驾考宝典下载地址:https://www.wandoujia.com/apps/280597
点击普通下载,下载apk
9、这里网盘也提供一下一些安装包
链接:https://pan.baidu.com/s/1gDEOuKBiLRjLhu_XhBheMA
提取码:8q8w
如果链接失效请下面评论,会更新链接

环境变量配置自行百度这里就不在说了

安装完成后运行安装appium-doctor命令检测appium环境

npm install -g appium-doctor


bundletool.jar下载地址:https://github.com/google/bundletool/releases
在android sdk安装目录下面创建bundle-tool目录把bundletool.jar放入 文件名字必须改为bundletool

在系统环境变量和用户环境变量分别添加上目录


FFmpeg下载地址:https://github.com/FFmpeg/FFmpeg
gstreamer下载地址:https://gstreamer.freedesktop.org/download/
opencv4nodejs和mjpeg-consumer使用npm安装

npm install -g opencv4nodejs
npm install -g mjpeg-consumer

再次运行appium-doctor检测环境全部打钩就没问题了

以上环境安装完成后在你的\Android\Sdk\platform-tools目录下找到adb.exe

在夜神安卓模拟器目录Nox\bin下找到nox_adb.exe
把\Android\Sdk\platform-tools目录下找到的adb.exe改名为nox_adb.exe并且复制到Nox\bin下

打开模拟器设置为手机版

探测包名使用cmd进入\Android\Sdk\build-tools\29.0.2>目录下 我这里是29.0.2版本可能会不一样
输入aapt dump badging D:\baidu\wechat.apk 注意apk的地址不能有中文否则会报错
执行后获取包名为com.tencent.mm


找到应用启动入口的Activity

打开Appium 输入本地地址127.0.0.1 默认端口4723 把截图里面的内容勾选



点击Start Server启动Appium

点击放大镜进入配置页面

cmd 输入 adb cconnect 127.0.0.1:62001 夜神安卓模拟器运行端口为62001

在Appium里面配置选项填写配置
deviceName 为模拟器连接URL
platform 为测试的应用平台
appPackage为应用包名
appActivity为应用启动入口

{"deviceName": "127.0.0.1:62001","platform": "Android","appPackage": "com.tencent.mm","appActivity": "com.tencent.mm.ui.LauncherUI"
}


点击 save保存配置方便下次使用不需要重新填写

Saved Capability Sets 可以看到刚才保存的配置

点击进入刚才的配置页

点击Start Session启动


错误原因为模拟器没有安装微信

直接鼠标拖拽apk到模拟器进行安装


每次开启模拟器必须要开启USB调试
设置>关于>连续点击版本号5次开启开发者模式

在设置里面找到开发者选项

找到USB调试打开

完成后点击Start Session


使用appium上面的Select Elements去选取按钮,获取按钮节点id

示例代码:
maven依赖包

<dependency><groupId>io.appium</groupId><artifactId>java-client</artifactId><version>7.3.0</version>
</dependency>
package com.centent.appium;import java.net.MalformedURLException;
import java.net.URL;import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.touch.offset.PointOption;/**
* @author ௸྄ིོུ倾心คิดถ
* @version 创建时间:2021年7月11日 下午5:49:04
* @ClassName 类名称
* @Description 类描述
*/
public class AppiumTest {public static AndroidDriver<WebElement> androidDriver;public static void main(String[] args) throws MalformedURLException {// 创建配置对象DesiredCapabilities desiredCapabilities = new DesiredCapabilities();// 添加配置// deviceName 可以找到我们测试的设备desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001");// platformName: 测试平台 Android or IosdesiredCapabilities.setCapability("platformName", "Android");desiredCapabilities.setCapability("appPackage", "com.handsgo.jiakao.android");// appActivity 测试App启动入口desiredCapabilities.setCapability("appActivity", "com.handsgo.jiakao.android.splash.Login");desiredCapabilities.setCapability("unicodeKeyboard", true);//使用 Unicode 输入法  desiredCapabilities.setCapability("resetKeyboard", true);  //重置输入法到原有状态 如果不加输入不了中文// 传入两个参数//第一个参数: Appium通讯地址//第二个参数:配置对象androidDriver=new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"),desiredCapabilities);try {testJiaKao();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void testJiaKao() throws InterruptedException {Thread.sleep(3000);TouchAction ta = new TouchAction(androidDriver);//触屏点击事件 输入ta.press(PointOption.point(605,1078)).release().perform();// 等待元素加载完毕Thread.sleep(20000);// 找到定位城市文本,并且点击androidDriver.findElementById("com.handsgo.jiakao.android:id/cityTv").click();//强制等待Thread.sleep(3000);//找到城市搜索框,并且输入福州androidDriver.findElementById("com.handsgo.jiakao.android:id/edt_search_q").sendKeys("福州");Thread.sleep(3000);//找到搜索结果中的福州,并且点击androidDriver.findElementById("com.handsgo.jiakao.android:id/item_title").click();//找到小车并且点击androidDriver.findElementById("com.handsgo.jiakao.android:id/itemCar").click();//找到下一步并且点击androidDriver.findElementById("com.handsgo.jiakao.android:id/okBtn").click();}}

探测页面元素id建议使用sdk的uiautomatorviewer.bat在目录Android\Sdk\tools\bin下面
启动之后在cmd 使用连接命令
adb connect 127.0.0.1:62001
红色框的按钮是刷新模拟器页面 当然你也可以选择使用Appium的元素探测按钮,但是没SDK自带的方便
如果uiautomatorviewer.bat点击使用不了
请到我的网盘下载jar包 放入Android\Sdk\tools\lib目录下直接覆盖
链接:https://pan.baidu.com/s/1PflWyiBNXpQ6XxZBuAeZDw
提取码:ynyl

持续更新中。。。。

Java的Appium自动化测试教程相关推荐

  1. appium的python教程_移动App Appium自动化测试教程Appium+Python 【2018年新】_IT教程网...

    资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 1-3 移 ...

  2. pythonapp自动化_移动App Appium自动化测试教程Appium+Python 【2018年新】

    资源介绍 资源名称:移动App Appium自动化测试教程Appium+Python [2018年新] 资源目录: 第一章:App自动化测试概述 1-1 Appium自动化课程简介 1-2 课程大纲 ...

  3. appium python自动测试 百度网盘_S35 移动App Appium自动化测试教程Appium+Python 百度云...

    Python视频教程名称:移动App Appium自动化测试教程Appium+Python  Python视频教程 [IT视频教程网] it教程 ( l  w1 F: L" `, v 2 c ...

  4. 跪了!!BATJ各位大佬联合教你Java进行Appium自动化测试的实现

    本文介绍如何在eclipse中使用Java进行Appium自动化测试 前提条件 1.配置好了java环境 2.安装了eclipse 3.安装了Maven 4.安装了Android模拟器.我用的夜神模拟 ...

  5. 使用WebDriver + Java + Junit做自动化测试教程

    web的自动化测试是比较有挑战性的工作,难度不亚于产品功能开发.web自动测试需要借助一些工具来完成.这其中涉及的工具有Webdriver\Java\Eclipse\Junit\Maven等. 详细的 ...

  6. 【selenium3+JAVA】界面自动化测试教程(一)——浏览器启动之firefox浏览器的启动

    前言 由于使用selenium3,故启动firefox浏览器时已经不能像以前那样不需要driver就可以启动了,需要添加driver,driver名称为geckodriver.exe,下载地址:htt ...

  7. 【selenium3+JAVA】界面自动化测试教程(一)——浏览器的启动之IE浏览器的启动

    前言 同chrome.firefox,ie浏览器的启动一样需要driver,但是IEDriver不像chromeDriver一样有多个版本,不同版本对应不同的chrome版本,它只有32位版本和64位 ...

  8. 全网最全appium工作原理以及appium自动化测试环境搭建教程

    目录:导读 一.前言 二.Appium简介 三.搭建Appium+Python自动化测试环境 1.安装JDK并配置JDK的环境变量. 2.安装SDK并配置SDK的环境变量. 3.安装夜神模拟器并在模拟 ...

  9. Appium 自动化测试

    前言: [文章末尾给大家留下了大量的福利] 1.Appium介绍 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以 ...

  10. 虫师python appium自动化测试书_Appium移动自动化测试(一)--安装Appium

    这套教程年久失修,问题的人也比较多,于是,我重新整理了一套appium入门教程. ---------2017.11.16 更新----------------------- Appium 自动化测试是 ...

最新文章

  1. Eigen入门之密集矩阵 8 - resharp slicing切片
  2. linux 硬盘繁忙,icinga2 借助check_iostat.sh抓取linux服务器的diskIO(硬盘繁忙度)
  3. Bzoj1899: [Zjoi2004]Lunch 午餐
  4. VSAN效能监控利器-VSAN Observer
  5. java tomcat 读取配置文件端口_跟我学Java编程—应用读写项目配置文件的Properties类...
  6. java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String
  7. 数学归纳法证明时间复杂度
  8. 两种消息模型: 点对点(queue)发布/订阅(topic)
  9. 软件poc测试方案,华为fusioncloud桌面云解决方案5.3poc测试方案v1.0
  10. Dynamic Web TWAIN:网页扫描过程中如何自动检测和删除空白页?
  11. 为Linux安装虚拟PDF打印机
  12. 基于无人售货机商品售卖情况推荐商品
  13. 3小时Python基础速成(1)
  14. S32K144_新建KEIL工程
  15. c语言中的三角函数公式,高中三角函数公式大全-必背基础知识点.doc
  16. 远程计算机网络会议有哪些优缺点,远程会议
  17. python 抛出异常记录
  18. 视频去重(hashlib.md5)
  19. csgo为什么显示vac无法连接服务器,《csgo》vac无法验证游戏会话怎么解决 vac无法验证游戏会话解决方法介绍...
  20. 云端软件平台(免去重装系统后装软件的烦恼)

热门文章

  1. PPT镂空字体、填充文字、图片字、拆分字制作
  2. 我写的万年历插件(含天干地支,农历,阳历,节气,各种节假日等),基于MooTools 1.4
  3. SQL Server2000安装教程
  4. 怎么在win7上安装AIR780E的USB驱动
  5. python utf编码 查询_python数据库查询中文乱码
  6. 前端页面读取ukey
  7. Jenkins定时构建与轮询SCM
  8. 华为数通NA-NP学习笔记(个人精简)
  9. ROS1 noetic + depthai_ros教程
  10. 特洛伊木马与计算机病毒有什么区别,特洛伊木马Vs病毒Vs蠕虫, 有什么区别?...