Appium环境的安装以及一路上的坑

Posted jiyanjiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium环境的安装以及一路上的坑相关的知识,希望对你有一定的参考价值。

Appium环境的安装以及一路上的坑

第一步环境的安装

l  javaJDK的安装以及环境变量的配置这个我就不说了网上的教程全都是,搜一个安装一下吧

androidSDK的安装也是如此我是直接安装的Studio,直接就安装了SDK

l  Node.js安装下载,网址: http://nodejs.cn/download/

l   Appium的下载以及安装

网址: https://bitbucket.org/appium/appium.app/downloads/

第二步验证环境安装成功:

l  如图:

第三步:环境安装遇到问题的排查:

l  执行命令appium-doctor,提示:android_home is not set

如图:

l  解决办法:在环境变量配置Appium:

1)    APPIUM_HOME D:\\ToolsInstall\\Appium\\node_modules\\appium

2)    Path加入: D:\\ToolsInstall\\Appium\\node_modules\\.bin

第四步:运行一个Appium的实例

       代码如下:

 1 # coding:utf-8
 2 import os
 3 from selenium import webdriver
 4 
 5 PATH = lambda p: os.path.abspath(
 6     os.path.join(os.path.dirname(__file__), p)
 7 )
 8 desired_caps = { }
 9 desired_caps[\'deviceName\'] = \'VBJ4C18607003439\'  # adb devices查到的设备名
10 desired_caps[\'platformName\'] = \'Android\'
11 desired_caps[\'platformVersion\'] = \'8.1.0\' #android 系统版本
12 desired_caps[\'appPackage\'] = \'com.aerozhonghuan.serialporttool\'  # 被测App的包名
13 desired_caps[\'appActivity\'] = \'com.aerozhonghuan.serialporttool.MainActivity\'  # 启动时的Activity
14 driver = webdriver.Remote(\'http://localhost:4723/wd/hub\', desired_caps)
15 el = driver.find_element_by_id("com.aerozhonghuan.serialporttool:id/btn_heartbeat")
16 el.click()
17 print(\'第一个appium脚本运行成功了\')
18 driver.quit()

第五步:脚本中元素的定位工具

  1. 获取包名和启动activity

命令: aapt dump badging C:\\Users\\lenovo\\Desktop\\sany_serialport.apk

如图:

2.获取页面id

Sdk自带工具: Android\\Sdk\\tools\\bin\\uiautomatorviewer.bat

如图:

第六步:运行脚本过程中遇到的问题:

  1. 运行脚本过程中出现: A new session could not be created

a)     首先安装SDK的路径不能含有空格

b)     其次环境变量配置要使用android_home(我之前是sdk_home,修改后便不再报错)

c)      修改后页面正确显示应该显示如下图

如图:

 

2.运行脚本的过程中报错:

"C:\\Users\\sxie\\AppData\\Local\\Android\\sdk\\platform-tools\\adb.exe -s emulator-5554 shell "ps \'uiautomator\'""

l  将\\Appium\\node_modules\\appium\\node_modules\\appium-adb\\lib\\adb.js的1033行左右修改为如下内容:

  代码:

 1 ADB.prototype.getPIDsByName = function (name, cb) {
 2   logger.debug("Getting all processes with \'" + name + "\'");
 3   this.shell_grep("ps",name,function(err, stdout) {
 4     if (err) {
 5       logger.debug("No matching processes found");
 6       return cb(null, []);
 7     }
 8     var pids = [];
 9     _.each(procs, function (proc) {
10       var match = /[^\\t ]+[\\t ]+([0-9]+)/.exec(proc);
11       if (match) {
12         pids.push(parseInt(match[1], 10));
13       }
14     });
15     if (pids.length !== procs.length) {
16       var msg = "Could not extract PIDs from ps output. PIDS: " +
17                 JSON.stringify(pids) + ", Procs: " + JSON.stringify(procs);
18       return cb(new Error(msg));
19     }
20     cb(null, pids);
21   });
22 };
23 
24 ADB.prototype.shell_grep = function(cmd,grep,cb){
25     if(cmd.indexOf("") === -1){
26         cmd = ""+ cmd + "";
27     }
28     var execCmd = \'shell\' + cmd + \'| grep\' + grep;
29     this.exec(execCmd, cb);
30 };

注:在环境的安装这一步我参考了乙醇的博客和一篇简书里的博客:

1)          https://www.jianshu.com/p/3eddb5979c69?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2)          http://www.cnblogs.com/nbkhic/p/3803883.html#undefined

 

以上是关于Appium环境的安装以及一路上的坑的主要内容,如果未能解决你的问题,请参考以下文章

记录Appium-desktop踩过的坑could not find devices

一路踩坑,搭建的Appium自动化测试环境

appium 踩过的坑(2021-12-31)

用ubuntu里的vim搭建一个apache2+php+mysql环境一路踩的坑

运行Appium碰到的坑们

Appium 自动化测试环境部署篇