appium运行环境配置

  • 作者:lwj
  • 分类:appium
  • 发表日期:2021-12-12 09:20:25
  • 阅读(55)
  • 评论(0)

配置步骤

一. 安装夜神模拟器
二. 安装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 ToolsAndroid SDK Platform-toolsAndroid SDK Build-tools即可

3. SDK环境变量配置

在系统变量新建:ANDROID_HOME,变量值为SDK的根目录:D:\android-sdk-windows

将SDK下的platform-toolstools两个文件夹添加添加到环境变量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 注册

评论列表

暂无评论
返回顶部

建议反馈

1. 可在博文底部留言评论

2. 发邮件到i_suichuan@163.com