1、安装JDK1.7及以上
2、下载解压sdk并且配置环境变量:
ANDROID_HOME:...\adt-bundle-windows-x86_64-20140702\sdk
PATH:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
dos检测adb版本:如下则sdk环境配置成功!
3、安装夜神模拟器(自行百度),然后开启夜神模拟器!
4、安装appium URL:https://github.com/appium/appium-desktop
下载:
默认安装:C:\Users\Administrator\AppData\Local\appium-desktop
注意:不要下载安装旧版本appium-server
启动:Appium.exe 填入本地地址:127.0.0.1及默认端口Port:4723
启动appium服务器:Start Server v1.7.2
开启一个会话进行选项配置:Desired Capabilities
(1) deviceName 获取:首先通过 adb connect 127.0.0.1:62001连接夜神模拟器,然后通过adb devices检测deviceName:127.0.0.1:62001
注意:genymotion自动连接,不需要 adb connect提前连接,与选取模拟器有关系!
·(2) appPackage 获取包名通过 adb shell dumpsys activity | find "mFocusedActivity"检测app当前运行的包名如下:appPackage: com.baidu.BaiduMap
(3) appActivity入口获取类名(表示当前界面):先进入 ...\sdk\build-tools\android-4.4W目录找到aapt.exe在此目录下打开dos输入:aapt dump badging 拖入apk
可以看到包名:
寻找到类名:
(4) platformName : android
(5) 开始会话:
5、开启java自动化脚本编写之旅:
(1) New Maven Progect;
(2) 引入java-client:扩充webDriver的协议,添加自动化相关的API;maven中央仓库:www.mvnrepository.com
(3) 上代码:
package com.appium_Demo1; import java.net.MalformedURLException; import java.net.URL; import org.apache.tools.ant.taskdefs.Sleep; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.ui.Sleeper; import io.appium.java_client.android.AndroidDriver; public class LoginTest { public static void main(String[] args) throws MalformedURLException, InterruptedException { // TODO Auto-generated method stub //1.添加配置,创建DesiredCapabilities对象 DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); //指定测试设备的名称 desiredCapabilities.setCapability("deviceName", "127.0.0.1:62001"); //添加操作系统配置 desiredCapabilities.setCapability("platformName", "Android"); //添加操作系统版本设置 desiredCapabilities.setCapability("platformVersion", "4.4.2"); //指定想要测试应用的包名 desiredCapabilities.setCapability("appPackage", "com.baidu.BaiduMap"); //指定想要测试应用的入口activity desiredCapabilities.setCapability("appActivity", "com.baidu.baidumaps.WelcomeScreen"); //2.创建驱动...URL是appium的固定地址;指定appium通讯的地址,将相对应的配置传入到驱动里边 AndroidDriver androidDriver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),desiredCapabilities); //加线程等待 //Thread.sleep(5000); //打开地图后点击同意继续 androidDriver.findElementById("com.baidu.BaiduMap:id/ok_btn").click(); //点击进入地图 androidDriver.findElementById("com.baidu.BaiduMap:id/btn_enter_map").click(); //退出 androidDriver.quit(); } }
(4) 报错:
找不到元素,加线程等待:Thread.sleep(5000);
(5) 再次运行成功!
6、小结:经过学习后自己总结,亲身体验,APP百度地图自动化导航执行成功,分享给正在学习的小白,如有不足之处,还请大家指出,勿喷!
7.报下面的错,是需要开启一个会话进行选项配置:Desired Capabilities
六月 26, 2021 11:45:33 上午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
六月 26, 2021 11:45:44 上午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Falling back to straight W3C remote end connection
六月 26, 2021 11:45:44 上午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Falling back to original OSS JSON Wire Protocol.
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '3.0.0-beta3', revision: 'c7b525d', time: '2016-09-01 14:57:03 -0700'
System info: host: 'LAPTOP-0HKKASF7', ip: '169.254.56.195', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_281'
Driver info: driver.version: AndroidDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:618)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:40)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:242)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:129)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142)
at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:36)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:114)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:132)
at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:92)
at cal_2.main(cal_2.java:27)
Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{appPackage=com.taobao.tao.welcome.Welcome, appActivity=com.taobao.tao.welcome.Welcome, platformVersion=7.1.2, appWaitActivity=com.taobao.tao.welcome.Welcome, sessionOverride=true, platformName=Android, deviceName=127.0.0.1:62001}], required capabilities = null
Build info: version: '3.0.0-beta3', revision: 'c7b525d', time: '2016-09-01 14:57:03 -0700'
System info: host: 'LAPTOP-0HKKASF7', ip: '169.254.56.195', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_281'
Driver info: driver.version: AndroidDriver
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:80)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:69)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:597)
... 11 more
Process finished with exit code 1
步骤:
当然需要打开夜神模拟器,下面是设置好后,点击start session出现的画面。