appium---第一个脚本--启动一个已存在的app
1、可以使用android-sdk中的aapt工具
①、选择一个版本的build_tools,加入path环境变量中
②、验证aapt环境是否正常
3、下载你要测试的包到本地,放入某一地址中(随意):aapt dump badging D:\Users\4admin\Desktop\jianshu_xpgod.apk(包的位置)
然后就可以获得包的所有信息,如包名、LauncheActivity
4、然后就可以开始写脚本啦
四、写脚本
1platformName:这里是android的apk
2.deviceName:手机设备名称,可以通过adb devices查看
3.platformVersion:android系统的版本号(如6.0.1)
4.appPackage:apk包名
5.appActivity:apk的launcherActivity
注意!!!:这些信息基本都能在这里找到,一定不能写错
以下代码是照抄的网上资源
from appium import webdriver;
from appium import version;
#from selenium import webdriver; #from appium import webDriver
pack_info={
'platformName':'android',
'deviceName':'215a343c0804',
'platformVersion':'',(也可以写版本号,如7.1.2)
'appPackage':'hykb.xmcy.hykb',(包名一定不能写错啊)
'appActivity':'com.xmcy.hykb.app.ui.splash.SplashActivity'
"noReset": "True"(发现每次启动实际上是一个重装过程,这样每次都会重置权限,这个开关True就是不重装,False就是重装)
} drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
#drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
运行后,
第一个问题:提示no moudle name'selenium',虽然不知道运行appium相关为什么要用selenium,但很明显还需要按照这个第三方,下载就是了(pip install selenium)
第二个问题:第一个问题已经解决,那么确认连上手机、打开appium-client,运行py代码,正常应该要在设备中打开这个指定的app,实际却提示以下错误栈
Traceback (most recent call last):
File "C:/Users/4399-3046/PycharmProjects/test_case/appium_test.py", line 19, in <module>
drive=webdriver.Remote('http://127.0.0.1:4723/wd/hub',pack_info);
File "D:\python3.7\lib\appium\webdriver\webdriver.py", line 129, in __init__
proxy
File "D:\python3.7\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "D:\python3.7\lib\appium\webdriver\webdriver.py", line 204, in start_session
response = self.execute(RemoteCommand.NEW_SESSION, parameters)
File "D:\python3.7\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "D:\python3.7\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"])
百度了一下,意思大概是:无法创建一个新的回话,因为启动的activity从来没有被启动~~~啥意思??我指定的启动Activity也没写错呀~然后网上说要指定一个【
'appWaitActivity':'com.xmcy.hykb.app.ui.startup.role.RoleActivity'
】,加了还是错误(其实关键我不知道这个appwaitActivity从哪里获取)
> info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: [\"bad pid 'uiautomator'\"])","origValue":"Could not extract PIDs from ps output. PIDS: [], Procs: [\"bad pid 'uiautomator'\"]"},"sessionId":null}
> info: <-- POST /wd/hub/session 500 11260.389 ms - 288
第二次尝试:仔细看了一下appium控制台的报错信息,找到以下信息:
百度了一下,说是要在appium/node_modules\appium-adb\lib\adb.js中加入以下代码,保存后,重启appium;--------------------------------加这个是因为我的手机版本号是7.0以上的,7.0以上Uautomator不兼容的问题,最终重启后,终于正常
======
最终,app中启动正常
=====
发现另外一个问题,虽然上面已经启动成功
①、当我电脑上即打开了夜神模拟器,又链接了电脑,此时,再运行代码,会提示,找不到目标计算机
但等我关掉两个模拟器,又正常了
是不是一次不能链接太多设备??
===========================
后面又遇到一个问题
在部分android机型(目前在vivo中有遇到)上每次运行最新版的appium-desktop都需要安装AppiumSetting以及Unlock,并且安装过程需要用户手动来确认,即使测试机上已经安装了这两个组件,运行appium也会要求安装,对于测试以及脚本的调试来说非常不便。
解决方案:https://www.cnblogs.com/testway/p/9324441.html
appium---第一个脚本--启动一个已存在的app的更多相关文章
- python2.7+appium第一个脚本(使用夜神模拟器)
搭建好环境后,可以开始准备脚本的编写工作 目录 1.安装夜神模拟器 2.使用uiautomatorviewer定位 3.运行第一个脚本 1.安装夜神模拟器 第一步:官网下载夜神模拟器,完成安装 双击下 ...
- Appium学习路—脚本篇(启动app)
启动之前的准备 1.脚本执行前,需要先启动appium的server端, 启动server方法: 打开appium客户端,点击右上角的Launch 2.iOS的测试只能在mac本上做 ...
- init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译 ...
- Appium+Python app自动化测试之脚本启动和停止Appium服务
研究了一段时间的Appium android app的自动化测试,工作中需要连接多台手机终端同时执行测试用例,我实现的方式是获取用例中需要执行用例的设备id个数以及实际连接到的设备数(通过adb de ...
- Appium + Python App自动化(2)第一个脚本
[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面 [4]拖动你的apk安装包到夜神模拟器里,然后模拟器会提示你安装.安装.原来 ...
- Appium + Python App自动化第一个脚本
今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...
- python+Appium自动化:运行第一个appium脚本
用pycharm工具进行编写,运行一个开启淘宝app实例 from appium import webdriver desired_caps = { "platformName": ...
- 通过USB和wifi连接真机&编写第一个脚本
一.通过USB和wifi连接真机 1. 数据线连接手机并允许调试 cmd命令行执行:adb devices (能查看到设备就可以进行编写自动化脚本步骤了,如果在USB接触不良的情况下,可以执行下面步骤 ...
- 【Android Developers Training】 15. 启动一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
随机推荐
- python pip下载速度慢的解决方法
pip是python内置的非常好用的下载工具,基本可以下载全部的python库.它还有一个非常好的特点,当你安装一个库的时候,它会自动帮你安装所有这个库的依赖库.完全一键式操作.非常方便.但是由于pi ...
- MySQL查询语句练习题,测试基本够用了
Sutdent表的定义 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 学号 INT(10) 是 否 是 是 是 Name 姓名 VARCHAR(20) 否 否 是 否 否 Sex 性 ...
- PyJWT 使用
最近要用 Falsk 开发一个大点的后端,为了安全考虑,弃用传统的Cookie验证.转用JWT. 其实 Falsk 有一个 Falsk-JWT 但是我觉得封装的太高,还是喜欢通用的 PyJWT . J ...
- 41)django-admin
一:介绍 通过django admin可以快速生成后台管理功能. 二:设置 工程同名下settings.py 1)在INSTALLED_APPS中增加django.contrib.admin 2)在I ...
- bat命令行实现全盘遍历搜索文件
背景:当想要查找一个文件时,记得放在某个盘里.手动去遍历时感觉好心累,找了半天还是没有找着(虽然win有自带的搜索框,但是看着进度条的速度,我便果断的点了取消).基于这个情况,所以写了脚本满足自身查找 ...
- Java与C++&C语言的个人看法----异同点(A)
日期:2018.7.30 星期一 博客期:004 第四期的博客我来说一下自己对Java的看法以及它与C++有什么异同之处! 先说不同之处吧!Java应该说是更面向对象一点,它的Java包里类可以通过用 ...
- AXI Traffic Generator 生成axi-lite axi4 axis 的IP
addr.coe memory_initialization_radix = ; memory_initialization_vector = ,,,,,,,,ffffffff; ctrl.coe m ...
- verilog-产生axis数据流
首先这是产生aixs数据流的代码 `timescale 1ps/1ps `default_nettype none module axis_switch_0_example_master #( ) ( ...
- BeatifulSoup模块
一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...
- 分块入门(根据hzwer的博客。。)(右端点是r不是n。。)
1.区间更新单点查询 #include <bits/stdc++.h> using namespace std; #define ll long long #define maxn 100 ...