博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Appium环境的安装以及一路上的坑
阅读量:4708 次
发布时间:2019-06-10

本文共 2781 字,大约阅读时间需要 9 分钟。

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

第一步环境的安装

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

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

l  Node.js安装下载,网址:

l   Appium的下载以及安装

网址:

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

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'  # 启动时的Activity14 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)         

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

 

转载于:https://www.cnblogs.com/jiyanjiao-702521/p/9510876.html

你可能感兴趣的文章
[HDU3555]Bomb
查看>>
基于dubbo的分布式系统(一)安装docker
查看>>
Recursion
查看>>
66. Plus One
查看>>
COMP30023 Computer Systems 2019
查看>>
CSS选择器分类
查看>>
Kali学习笔记39:SQL手工注入(1)
查看>>
C# MD5加密
查看>>
Codeforces Round #329 (Div. 2)D LCA+并查集路径压缩
查看>>
移动应用开发测试工具Bugtags集成和使用教程
查看>>
Java GC、新生代、老年代
查看>>
Liferay 6.2 改造系列之十一:默认关闭CDN动态资源
查看>>
多线程
查看>>
折线切割平面
查看>>
获取当前路径下的所有文件路径 :listFiles
查看>>
图像形态学及更通用的形态学的原理及细节汇总
查看>>
linux开启coredump的3种方法
查看>>
数据驱动之 python + requests + Excel
查看>>
小鸡啄米问题求解
查看>>
Castle.net
查看>>