环境配置需求: 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;
public class AppiumTest {
public static AndroidDriver<WebElement> androidDriver;
public static void main(String[] args) throws MalformedURLException {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001");
desiredCapabilities.setCapability("platformName", "Android");
desiredCapabilities.setCapability("appPackage", "com.handsgo.jiakao.android");
desiredCapabilities.setCapability("appActivity", "com.handsgo.jiakao.android.splash.Login");
desiredCapabilities.setCapability("unicodeKeyboard", true);
desiredCapabilities.setCapability("resetKeyboard", true);
androidDriver=new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"),desiredCapabilities);
try {
testJiaKao();
} catch (InterruptedException e) {
e.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 
持续更新中。。。。
|