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 ...
随机推荐
- Go学习笔记(只有链接)
Go学习笔记 link: https://blog.csdn.net/u011304970/article/details/69908641 仅作为记录使用.
- java如何将一个List传入Oracle存储过程
注:本文来源于 深圳gg < java如何将一个List传入Oracle存储过程 > 一:数据库端建一个PL/SQL的数组. CREATE OR REPLACE TYPE tabl ...
- Confluence 6 开始编辑 CSS
希望编辑空间的样式表: 进入到空间,然后在左侧边栏中选择 空间工具 > 界面外观(Space tools > Look and Feel). 选择 样式表(Stylesheet)然后选择 ...
- 遇到的一个移动端从下往上过渡的弹框,在Android下过渡动画的优化问题。
优化之前: /* 分享弹框样式 */ .popUpDiv { width: 100vw; height: 100vh; transition: all 0.5s ease; position: fix ...
- bat命令行实现全盘遍历搜索文件
背景:当想要查找一个文件时,记得放在某个盘里.手动去遍历时感觉好心累,找了半天还是没有找着(虽然win有自带的搜索框,但是看着进度条的速度,我便果断的点了取消).基于这个情况,所以写了脚本满足自身查找 ...
- MySQL源码安装一键脚本
#红色部分根据自己的需求来定义#!/bin/bash #卸载系统自带的Mysql /bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps /bi ...
- jQuery---过滤选择器
4.过滤选择器 过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS 中的伪类选择器语法相同,即选择器都以一个冒号(:)开头.按照不同的过滤规则, 过滤选择器可以分为基本过滤. ...
- 回到未来123Back To The Future
或许,决定着现在的过去已经无法改变,但决定着未来的现在,却在我们每个人的手里. 路?我们要去的地方不需要路.(Roads? Where we're going we don't need roads) ...
- GreenDao3.2的简单使用
Android -- GreenDao3.2的简单使用http://www.cnblogs.com/wjtaigwh/p/6394288.html https://github.com/greenro ...
- 应用程序池--IIS最大工作进程数
IIS 6.0允许将应用程序池配置成一个Web园(Web Garden).要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程 ...