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
![](http://upload-images.jianshu.io/upload_images/6424670-3c397f04c935f210.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/644/format/webp)
![](http://upload-images.jianshu.io/upload_images/6424670-b2ff037f1337dd37.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/440/format/webp)
>验证问题描述情况:(验证之前需要先配置环境变量,将SDK下的adb所在目录(D:\Program Files\Android\adt-bundle-windows-x86\sdk\platform-tools)、以及夜神模拟器的adb所在目录(D:\Program Files (x86)\nox\bin)加入了系统的环境变量path中)
![](http://upload-images.jianshu.io/upload_images/6424670-9c82e35a2632ef02.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/498/format/webp)
>解决办法:
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,看看是不是连接成功了?
![](http://upload-images.jianshu.io/upload_images/6424670-bbb38d998a5d8bae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/575/format/webp)
![](http://upload-images.jianshu.io/upload_images/6424670-f21aca567cac81e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/490/format/webp)
遇到问题:
目前运行服务器端的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设置项,如下图所示
![](http://upload-images.jianshu.io/upload_images/6424670-9a7cb459c08290c3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/702/format/webp)
6.2.打开appium并点击右上角三角符号,如下图所示
![](http://upload-images.jianshu.io/upload_images/6424670-e8c282c12489f6e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/828/format/webp)
6.3.运行pycharm代码,并查看结果,如下图所示(其实不会出错,图是网上找的):
![](http://upload-images.jianshu.io/upload_images/6424670-bd94f63a478f519f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
遇到的坑1:在CMD指令中输入appium,提示如下图所示
![](http://upload-images.jianshu.io/upload_images/6424670-e21a265a632920a9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/962/format/webp)
遇到的坑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 ...
随机推荐
- duilib 新增数据迁移界面
xml界面配置: <?xml version="1.0" encoding="utf-8"?> <Window caption="0 ...
- linux下利用C或C++ 语言调用需要root权限的函数
1.setuid法(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序).也可直接将普通用户加入root组中,那么编译程序不用来回切换用户.(2)登录root ...
- socket(套接字)初使用
socket层 socket:是应用层与TCP/IP协议通信的中间软件抽象层,是一组接口,在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/IP协议隐藏在socket接口后面. 基于T ...
- php发送邮箱重置密码链接,并在重置成功后使链接失效 (ThinkPHP5)
/** * 重置密码页,验证链接有效性,页面发送邮件调用sendResetPwdEmail()方法 */ public function resetPwd() { $param = input('') ...
- Digest of Overview of Linux Kernel Security Features
Linux kernel Security: I. DAC: Discretionary Access Control, the core security model of UNIX. II. PO ...
- [dev] udp socket的read长度问题
场景描述 我的两个程序需要彼此通信.采用unix socket来实现. 并为了简单起见使用了DGRAM,也就是udp通信. 问题描述 1. 用法是这样的 收包的一端使用epoll监听,发包端发送一个2 ...
- JavaWeb的学习路线
JavaWeb的学习路线 一.BS结构 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件.这种模式统一了客户端,将 ...
- Python Flask Restful
Flask Restful 1.flask restful 在flask基础上进行一些封装,主要用于实现restful接口 2.restful的理解 1)URI(统一资源标识符):每一个URI代表一 ...
- spring-data-redis2.0以上配置redis连接
1.所需的maven依赖 <dependency> <groupId>org.springframework.data</groupId> <artifact ...
- SpringBoot 学习教程(二):示例
发布方式 构建Jar包,cmd命令行运行Spring Boot程序 第一步:在pom.xml中将packing节点值修改为jar,如下面加粗部分: <groupId>com.example ...