配置步骤
一. 安装夜神模拟器
二. 安装JDK及配置环境变量
三. 安装SDK及配置环境变量
四. 安装Node.js和.net framework4.5
五. 安装Appium桌面版本
六. Appium-Python-Client
七. 启动淘宝app
环境配置
步骤一:安装夜神模拟器,我安装的7.0.1.5版本,傻瓜式安装
步骤二:安装JDK和配置环境变量,已提前安装和配置了JDK1.8.0_181
步骤三:安装SDK和配置环境变量
1. 安装SDK:将下载好的SDK压缩包解压到需要安装的路径即可
2. 安装SDK工具,使用模拟器或真机可不安装安卓版本,直接安装Android SDK Tools
、Android SDK Platform-tools
和Android SDK Build-tools
即可
3. SDK环境变量配置
在系统变量新建:ANDROID_HOME,变量值为SDK的根目录:D:\android-sdk-windows
将SDK下的platform-tools和tools两个文件夹添加添加到环境变量path中
4. 检查adb安装配置情况(adb是在D:\android-sdk-windows\platform-tools这个目录下, 不需要额外配置环境变量),直接在dos窗口输入adb version
查看adb版本
5. 打开模拟器输入adb devices
查看可连接的手机信息,如下图;至此SDK配置好了
步骤四:安装Node.js和.net framework4.5
Node.js下载和安装(傻瓜式,选择需要安装的路径一直下一步即可), 安装后在dos窗口输入node --version
查看版本信息
.net framework4.5下载和安装(傻瓜式一直下一步即可)
步骤五:安装appium桌面版
1. 下载好了后直接点击appium-installer.exe文件安装, 桌面会生成一个appium的图标,启动后界面显示如下
2. 将appium的D:\Appium\node_modules\.bin目录添加到环境变量Path中
3. 打开dos窗口输入appium-doctor
检查appium的运行环境是否配置成功,如下图:
步骤六:安装Appium-Python-Client
Python已配置好,直接通过pip安装
pip install Appium-Python-Client
步骤七: 启动淘宝app
查看APP包名和launcherActivity的两种方式:
1. 通过aapt查看app的包名和avtivity
打开dos窗口进入D:\android-sdk-windows\build-tools\29.3文件下,输入aapt dump badging D:\test\xxx.apk
(APK的全名,如taobao_10_6_10.apk)
如下可看到app的包名为:com.taobao.taobao
屏幕拖到中间找到auncherActivity,淘宝的launcherActivity值为com.taobao.tao.welcome.Welcome
2. 启动app后在dos窗口输入如下命令,可app的包名和launcherActivity看起来更清晰,如下
adb shell dumpsys window | findstr mCurrentFocus
通过appium脚本启动淘宝app
# coding: utf-8
# Author: sitVen
from time import sleep
from appium import webdriver
from setting import desired_saps
# 模拟器信息
desired_saps = {
'platformName': "Android",
'deviceName': "127.0.0.1:62001", # 手机设备名称,通过adb devices查看
'platformVersion': "7.1.2", # 安卓系统的版本号
'appPackage': "com.taobao.taobao", # apk包名
"appActivity": "com.taobao.tao.welcome.Welcome" # apk的launcherActivity
}
# 启动淘宝
driver = webdriver.Remote(
command_executor="http://127.0.0.1:4723/wd/hub",
desired_capabilities=desired_saps
)
print(1)
sleep(2)
# 关闭当前操作的app,不会关闭驱动对象
driver.close_app()
print(2)
driver.quit()
print(3)
app能正常启动和关闭,说明环境配置ok
遇到的坑
1. adb devices命令找不到夜深模拟器
打开dos窗口输入:adb connect 127.0.0.1:62001后在输入adb devices就可看到夜神模拟器了
2. appium与夜神模拟器进行连接服务启动失败
需要先确认本机的SDK路径下的adb.exe版本与夜神模拟器中的adb.exe版本是否一致,如果不一致则将模拟器bin目录下adb复制到SDK的platform-tools目录下,替换sdk的adb
3. 执行appium脚本失败后,后续启动脚本报错:Message: A new session could not be created. (Original error: Requested a new session but one was in progress)
失败脚本的会话未关闭, 将General Setting的Override Existing Session勾选上, 每次启动连接覆盖旧的会话
4. appium每次启动时都安装setting和unlock app但已存在会报错
找到appium安装目录,可以在 appium 源码里注释掉安装 unlock 和 setting 两个 app 的代码:D:\Appium\node_modules\appium\lib\devices\android\android.js注释其中的两行
5. Android 7.0系统的手机通过android-sdk自带的元素定位工具uiautomatorviewer获取页面元素报错:"PS 'uiautomator'"
找到appium的安装目录下的adb.js文件,windows版本的目录如下:
D:\Appium\node_modules\appium\node_modules\appium-adb\lib, 打开adb.js,手动修改该文件下的内容
# 将
this.shell("ps '" + name + "'", function (err, stdout) {
if (err) return cb(err);
#替换成
this.shell_grep("ps", name, function (err, stdout) {
if (err) {
logger.debug("No matching processes found");
return cb(null, []);
}
# 并增加上面用到的shell_grep函数:
ADB.prototype.shell_grep = function (cmd, grep, cb) {
if (cmd.indexOf('"') === -1) {
cmd = '"' + cmd + '"';
}
var execCmd = 'shell ' + cmd + '| grep ' + grep;
this.exec(execCmd, cb);
};
提交评论
您尚未登录,登录之后方可评论~ 登录 or 注册