appium+夜神+python3 环境配置
先感慨一下真的心累啊,踩了好多坑,断断续续四天终于把环境彻底搭建完了,由于之前看的网上的帖子都不是很全而且还带坑,决定自己写一篇综述,作为笔记。
一,首先是安装需要的环境:
需要用到的软件:
1. jdk-8u121-window(32位的就下载32位的,64位的就下载64位的)。
2.Android-sdk_r24.3.4-windows(下载这个adt-bundle-windows-x86-20140624)
3.Python:(V3.6也可以)
4.Node.js:node-v4.4.7-x64
5. appium:1.4.13.1
6.Appium-python-Client
7.pycharm
其中1-5是可以先下载的,6则需要在完成前面的五个步骤后才进行,7为可选Ide工具
1.1 JDK
jdk版本很重要,自己其实就是版本有问题才踩了很多坑,如果遇到报错带java的建议降低版本为1.7 有奇效。
千万不要按1.9 版本。其次一定要按照链接的方式陪 :
https://jingyan.baidu.com/article/d45ad148ba5ab169552b80d3.html
按快捷键win+r,在运行内输入cmd,并输入Java,回车,如果出来的是些用法中文,那说明这是正确的,在接下来输入javac,回车,如果出现些用法中文,说明是环境变量配好了。
1.2 下载SDK
下载这个adt-bundle-windows-x86-20140624(64位)
下载地址:
https://blog.csdn.net/gtkknd/article/details/39336825
安装方法:
下载好后并进行解压,然后开始配置三个变量:
1.解压adt集成包到合适的路径下面,比如D:\adt\
2.设置安卓环境变量
配置环境变量,
设置ANDROID_HOME系统变量为你的android SDK路径,并把tools和platform-tools两个目录加入到系统的Path路径里。
eg:添加变量名:ANDROID_HOME 变量值: D:\adt\sdk
并把这句添加到 %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools记得要加上";"
配置完环境后,可以在运行cmd后输入 adb(能看到当前版本号),再输入android-h(tools目录下的,如果出来一堆文字则是可以的)
1.3 安装python
进入官网或百度下载python下载好后安装到所需安装路径,如在D盘中新建一个python文件夹,如d:\python34
安装完成后将D:\python和D:\python\Scripts,添加到环境变量path下
打开cmd输入python,出现版本号,然后输入print("helloworld!")这样python就是安装好了。
1.4 安装node.js
进入官网地址并下载:https://nodejs.org/en/download/
下载后一路傻瓜式安装,安装完成后,运行cmd,输入node –v查看版本号,然后输入npm
这里同样注意版本 node-v4.4.7-x64
1.5 安装appium服务端
node 版本不对建议直接卸载重新安装
方法一:进入官网地址并下载
https://bitbucket.org/appium/appium.app/downloads/
完整安装带UI的appium,可以从官网直接下载dmg(mac)或者zip(Windows),运行里面的app即可。
appium安装好后:
找到这个文件安装目录D:\appium\node_modules\.bin
将上面的地址添加到环境变量path下;
方法二:node.js包管理安装
npm install -g appium
appium –v
npm install -g appium-doctor
appium-doctor
命令安装的appium是控制台程序,没有UI界面。可到github搜索appium的appiumDesktop项目中下载最新版本
但是由于GFW关系,此方法会在安装过程中卡住或是直接报错,解决办法:挂VPN代理FQ;为了满足国内开发人员的需要,淘宝npm镜像cnpmjs.org可替代官方版本。打开输入:
npm install -g appium --registry=https://registry.npm.taobao.org
方法三:百度pan
直接下载appium的GUI界面安装包,下载地址:https://pan.baidu.com/s/1jGvAISu#list/path=%2F,Windows最新版本是AppiumForWindows_1.4.16.1.zip,MacOS最新版本是appium-1.5.3.dmg。笔者以windows为例,下载的AppiumForWindows_1.4.16.1.zip 进行解压安装,启动appium,弹出错误提示框

很容易在网上查到错误原因,因为node.js需要.NETFramework框架的支持,所以在这里需要安装net framework4.5。当.net framework 4.5安装完成,再次启动Appium,
打开appium

appium安装好后:
找到这个文件安装目录D:\appium\node_modules\.bin
将上面的地址添加到环境变量path下;
Tips:检查appium的所有需求环境
npm install -g appium-doctor
appium-doctor
打开cmd,输入appium-doctor,检查环境是否OK,出现allchecks were successful,说明环境OK;
1.6 appium-python-client
进入cmd 输入:pip install Appium-Python-Client。通过Python安装等待安装完成。
如果从官方的资源库下载Appium-Python-Client失败,请自行更换下载源重新下载。在命令行输入"pip install Appium-Python-Client -ihttp://pypi.douban.com/simple"重试
Tips:检查selenium版本3.3.3
安装 Appium-Python-Client 的同时会安装一个selenium模块.试着进入python3交互命令行,然后执行下面命令:
import selenium
selenium.__version__
如果你显示的 selenium 版本是当前最新版本3.3.3的话,那么最好使用下面命令将版本装成3.0.2,网传某些Api的话会报错。
pip3 install -I selenium==3.0.2
1.7 pycharm
安装流程参考:http://www.jianshu.com/p/042324342bf4
需要激活可以购买正版或网上搜索激活码。
二,实战:
如果没有遇到问题直接跳过1,2两步,先打开夜神模拟器
1.夜神模拟器配置
>配置系统环境:在Path中添加C:\Programfile\Nox\bin; (夜神模拟器安装的bin目录)
然后进入这个目录下,启动cmd,输入nox_adb.exe connect 127.0.0.1:62001(为了adb连接模拟器),可能会出现以下的情况,那就是因为你的adb版本和模拟器中的adb版本不同,而且环境变量配置有问题,所以保证环境变量按照上边写的配置好以后,看下边图1和图2


>验证问题描述情况:(验证之前需要先配置环境变量,将SDK下的adb所在目录(D:\Program Files\Android\adt-bundle-windows-x86\sdk\platform-tools)、以及夜神模拟器的adb所在目录(D:\Program Files (x86)\nox\bin)加入了系统的环境变量path中)

>解决办法:
a、关掉夜神模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。
b、找到SDK的目录和夜神模拟器的目录,将SDK目录下的adb.exe文件,复制到夜神模拟器的目录下,因为夜神模拟器目录下原本的adb文件名字叫做nox_adb.exe,因此复制过去之后也得改名为nox_adb.exe。
再次进入这个目录下,启动cmd,输入 nox_adb.exe connect 127.0.0.1:62001,再继续,输入adb devices,看看是不是连接成功了?


遇到问题:
目前运行服务器端的adb版本(也就是夜神模拟器的adb版本)比客户端的版本(也就是SDK目录下的adb版本)低。
报错信息如下:
adb server version(31) doesn’t match this client (36);killing…
解决办法:
a、关掉夜神模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。
b、找到SDK的目录和夜神模拟器的目录,将SDK目录(C:\Program Files (x86)\Android\android-sdk\platform-tools)下的adb.exe文件,复制到夜神模拟器的目录(C:\Program Files (x86)\Nox\bin)下,将夜神模拟器目录下原本的adb.exe和nox_adb.exe修改文件名为adb_bak.exe和nox_adb_bak.exe,将从SDK目录复制过来的adb.exe放在夜神目录下,同时复制一份改名为nox_adb.exe。
3.启动夜神模拟器
打开cmd命令行,进入夜神安装目录,执行如下命令:
cd D:\Program Files (x86)\nox\bin
nox_adb.exe connect 127.0.0.1:
nox_adb是第二步修改的,没有第二步可以直接执行adb.exe connect 127.0.0.1:62001
在cmd命令行中,输入:adb devices查看
存在:127.0.0.1:62001 device
即为成功!
adb devices

4.安装测试app
将测试app.apk安装包拖到夜神模拟器即可安装测试app。
5.运行与使用Appium
安装完成桌面会生成一个紫色的appium 图标,双击打开。 
6.编写appium自动化测试脚本
6.1.首先打开pycharm并写好代码,这里以淘宝APK作为测试Demo,淘宝APK我是放在电脑桌面(或者放置同代码同个目录下)。如下所示
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time desired_caps = {}
desired_caps['platformName'] = "Android" # 声明是ios还是Android系统
desired_caps['platformVersion'] = '4.4.2' # Android内核版本号,可以在夜神模拟器设置中查看
desired_caps['deviceName'] = '127.0.0.1:62001' # 连接的设备名称
desired_caps['appPackage'] = 'com.ss.android.ugc.aweme' # apk的包名
desired_caps['appActivity'] = 'com.ss.android.ugc.aweme.splash.SplashActivity' # apk的launcherActivity
# desired_caps['appWaitActivity'] = 'com.ss.android.ugc.aweme.splash.SplashActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 建立 session time.sleep(5)
print('+++++++')
# 通过xpyth定位:find_element_by_xpath(“//android.widget.TextView[10]”) xpath下标从1开始,使用完整的classname
# 通过text name:find_element_by_name(name对应uiautomator扫描后text的内容)
# 通过id:find_element_by_id(id对应resource-id)
# 通过classname定位:find_element_by_class_name(class_name对应class)
# 通过accessibility id:find_element_by_accessibility_id(accessibility_id对应content-desc)
# 定位到某个文本框,并输入内容:
# driver.find_element_by_id(“xxxxx”) .send_keys(“123456”)
# 滑动屏幕:
# 获取屏幕尺寸 width=self.driver.get_window_size()[‘width’] height=self.driver.get_window_size()[‘height’]
# 滑动屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000) # driver.find_element_by_id("************").click() # 点击元素
#
# driver.find_element_by_xpath("************").click() # 点击元素
#
# driver.find_element_by_xpath("************").send_keys(u'123456') # 发送键值 driver.quit() # 退出 session
其中查询apk
其中|:driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #这个地址是怎么来的呢?,见appium设置项,如下图所示

6.2.打开appium并点击右上角三角符号,如下图所示

6.3.运行pycharm代码,并查看结果,如下图所示(其实不会出错,图是网上找的):

遇到的坑1:在CMD指令中输入appium,提示如下图所示

遇到的坑2:运行appium提示error: Couldn't start Appium REST http interface listener. Requested port is already in use. Please make sure there's no other instance of Appium running already.
解决方式:因为端口被node占用,可以用如下退出node,找出PID命令::netstat -ano|findstr "7922" (这个4723是被占用的端口,我们需要先找该占用该端口程序的PID)。停止PID命令:taskkill /pid[进程码] -t(结束该进程) -f(强制结束该进程以及所有子进程)。
坑3
https://blog.csdn.net/qq_14913483/article/details/81141314
三.综述
官网:
https://github.com/appium/python-client
appium日志解析:
https://blog.csdn.net/qq_24126893/article/details/80314776
参考的网址:
https://blog.csdn.net/qq_16206535/article/details/79586818
https://www.jianshu.com/p/50eb9a88f4e2
appium+夜神+python3 环境配置的更多相关文章
- appium + python的环境配置_windows
appium是什么? 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以测试ios,android应用(当然了,还有 ...
- Appium安卓与环境配置
下载与安装: Appium-desktop项目地址:https://github.com/appium/appium-desktop 下载地址:https://github.com/appium/ap ...
- Appium+Python+Genymotion ------环境配置
前言 之前总是在找方向,也研究了很多的工具,终于找到了适合自己的一套,打算把学习的过程做一个记录,给自己加深印象,也希望能给其他人一些帮助. 一.工具准备 1.Appium // http://a ...
- Appium安装(环境配置)
Appium官方网站:http://appium.io/ 首页底部给出安装步骤, 一.Appium官网提示首先安装node.js,上https://nodejs.org/找找看,下载完后仅用你0.01 ...
- appium+python+windows环境配置
一.安装node.js 1:先找到对于电脑合适的node版本进行下载. 我的云盘node版本是7.8.0.地址如下:https://pan.baidu.com/s/19kcpXhCN1AuJAT9CB ...
- appium的基本环境配置
1.先安装jdk1.7或jdk1.8之后,并配置好环境变量 2.安装Android SDK(安卓软件开发包),测试Android手机必然要安装Android SDK,例如android-sdk_r24 ...
- Appium+eclipse+python环境配置
1.安装安卓开发环境(教程很多,不细写) 2.安装eclipse 下载eclipse,解压即可 3.安装python 下载地址:https://www.python.org/downloads/r ...
- Appium + python 自动化测试环境配置
-------------------------------------------------------------- 1. jdk-8u121-window(32位的就下载32位的,64位的就 ...
- app自动化测试环境配置:adb环境配置、monkey环境配置、appium环境配置大全
1. 安装jdk 2. 安装配置Andriod sdk 安装Andriod sdk前首先需要安装配置好jdk环境. 然后安装Android sdk 安装完成后需要配置环境变量:ANDROID_HOME ...
随机推荐
- eclipse创建spring boot项目,tomcat启动成功,但http://localhost:8080无法访问报错404解决方案
spring boot的启动程序启动后,在访问http://localhost:8080地址的时候出现了错误,为什么出错网上我找了好久也没有得出具体的解决办法 当我指定到具体的action的时候,却可 ...
- oracle中查询用户信息
1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限( ...
- Lecture6.概率极限理论
一.随机变量序列的收敛性 1.定义 (1)概率为1收敛: 如果$P{\lim\limits_{n \to \infty}X_n = X} = 1$,则称{Xn}概率为1地收敛于X,或几乎处处(几乎必然 ...
- CodeForces 1143A The Doors
The Doors 签到题 #include <iostream> using namespace std; int a[200005]; int main() { int n; scan ...
- 让AI简单且强大:深度学习引擎OneFlow技术实践
本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...
- 关于python字符串基本操作
python字符串基本操作,比如字符串的替换.删除.截取.复制.连接.分割等.都是一些关于字符串的一些方法.下面来列举一些,相信对学习python还是有些帮助的. 1.去除空格--strp(): &g ...
- Rabbitmq消息持久化
1.交换机持久化设置 exchange 持久化,在声明时指定 durable未true 2.队列持久化设置 queue 持久化,在声明时指定 durable 为true 3.消息持久化设置 Deliv ...
- c#重命名文件,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”
修改远程服务器的文件名,报错“System.NotSupportedException”类型的未经处理的异常在 mscorlib.dll 中发生”,“System.NotSupportedExcept ...
- mysql视图、存储过程等
视图: 需求: 创建的临时表(select * from tb1)被反复使用,这时可以为该临时表创建视图.视图相当于为某个查询创建了别名. 1.创建视图 create view v1 as selec ...
- js 自动类型转换
js自动类型转换 1.==符号在判断左右两边数据是否相等时,如果数据类型一致,直接比较值即可 2.==符号左右数据类型不一致时,如果两方数据为布尔型.数值型.字符串型时,不为数字的那一方自动调用Num ...