appium基础之简单的小例子
- 遇到问题
- 1.The permission to start '.ui.home.view.HomeActivity' activity has been denied.Make sure the activity/package names are correct.
- 解决办法1:可能是以为没有拿到真正的启动activty
- a.手机运行着app
- b.进入adb shell模式,输入命令:dumpsys activity activities >C:\Users\admin\Downloads\TESTER\monkey_log\aa.txt
- c.结果报错:
- system/bin/sh: can't create C:UsersadminDownloadsTESTERmonkey_logaa.txt: Read-only file system
- shell模式不识别路径\导致出现这个问题,直接输出adb shell dumpsys activity activities >C:\Users\admin\Downloads\TESTER\monkey_log\aa.txt
- 成功输出日志,打开路径下的aa日志,搜索Package 查看包名,搜索 realActivity这个关键字就可以查看包名和activity
- 搜索结果如下:
- realActivity=包名/启动activity
- 总结起来,真的是因为没有拿对activity启动页面的。。。
- 如何让实现appium的简单的自动化
- 1.基础环境搭建是基础
- 2.获取到app的包名和activity路径名称--在后面代码中会遇到
- 3.打开appiumdesktop 连接手机获取到打开页面,定位元素路径
- 4.开始编写代码,跑简单的脚本,和web的基本差不多
- 下面是实现的代码:
- from appium import webdriver#导入appium包
- import time
- #连接手机app初始化的一些信息
- desc={}
- desc['deviceName']='721QEBRA28767'#手机设备名称,adb devices
- desc['platformVersion']='7.1.2'#手机版本,在手机中:设置--关于手机
- desc['platformName']='Android' #手机类型,ios或android
- #输入命令,获取app信息:aapt dump badging C:\Users\83473\Desktop\mobileqq_android.apk
- desc['appPackage']='vchat.faceme'#包名
- desc['appActivity']='.LaunchActivity'#启动入口
- desc["unicodeKeyboard"] = "True"#appium提供的一种输入法,可以传中文。测试时直接用这个输入法
- desc["resetKeyboard"] = "True"#程序结束时重置原来的输入法
- desc["noReset"] = "True"#不初始化手机app信息(类似不清楚缓存)
- #启动服务端,再cmd窗口输入appium.如果appium没有安装好,可以打开appium-desktop.也相当于启动了服务
- driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desc)#访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
- #上面是基础的配置,现在开始实战
- time.sleep(3)
- driver.find_element_by_xpath('/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/vchat.common.widget.MyDrawerLayout/android.widget.LinearLayout/android.widget.RelativeLayout/androidx.recyclerview.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.TextView').click()
- time.sleep(3)
- driver.find_element_by_id('vchat.faceme:id/iv_voice_room').click()
- time.sleep(2)
- driver.find_element_by_id('vchat.faceme:id/btn_add_voice_room').click()
- time.sleep(5)
- print('简单的测试完成')
appium基础之简单的小例子的更多相关文章
- 基于vue-cli、elementUI的Vue超简单入门小例子
- 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...
- appium+python+eclipse简单编写小示例!
Appium简单介绍! 一.appium分成3个部分来看,分别为:appium服务端.appium客户端.设备端 1.设备端 WebDriverAgentRunner 的应用,以后简称 WDA,这个应 ...
- 一个简单的小例子让你明白c#中的委托-终于懂了!
模拟主持人发布一个问题,由多个嘉宾来回答这个问题. 分析:从需求中抽出Host (主持人) 类和Guests (嘉宾) 类. 作为问题的发布者,Host不知道问题如何解答.因此它只能发布这个事件,将事 ...
- Spring简单的小例子SpringDemo,用于初略理解什么是Spring以及JavaBean的一些概念
一.开发前的准备 两个开发包spring-framework-3.1.1.RELEASE-with-docs.zip和commons-logging-1.2-bin.zip,将它们解压,然后把Spri ...
- js 继承的简单易懂小例子
js 继承 今天主要说原型链继承.构造继承.组合继承三种常用继承方式,分享一下我的理解. 原型链继承例子1 //原型继承function A(name){ this.name = name;}func ...
- java入门---简介&简单输出小例子&开发前准备
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出.J ...
- Oracle 数据库基础学习 (二) 学习小例子:创建一个表,记录商品买卖的情况
运行环境:Oracle database 11g + PL/SQL Developer ex: --创建一个表 create table plspl_test_product( --加入not n ...
- struts2基础——最简单的一个例子
学习版本:struts-2.3.15.3 一.导入jar包,可以参考 官方项目 blank. 二.添加配置文件:web.xml struts.xml web.xml: <filter> & ...
- Asp.net MVC4之 一个简单的小例子
练习: 新建一个mvc项目 要求: 有3个视图 Login Index Details 目的:感受一下MVC与传统WebForm的差异性 WebForm的请求模型 MVC请求模型 传统WebForm ...
随机推荐
- -moz-box-shadow
css的box-shadow是用来添加边框阴影效果的. 属性值详解: 1.inset可选值,默认阴影在盒子外使用inset后,阴影在盒子内,即使指定边框或者透明边框,阴影依然存在. 2.<off ...
- 运维之思科篇——NAT基础配置
一. NAT(网络地址转换) 1. 作用:通过将内部网络的私有IP地址翻译成全球唯一的公网IP地址,使内部网络可以连接到互联网等外部网络上. 2. 优点: 节省公有合法IP地址 处理地址重叠 增强灵活 ...
- 搭建Git服务器及本机克隆提交
前文 Git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首 ...
- MFC中png格式图片贴图的实现
MFC中png格式图片贴图的实现(2011-07-14 19:10:29) ___转载自新浪 初学vc,正在做五子棋,五子棋中的图片格式都是bmp格式的,所以贴图用CBitmap可以很简单的实现.刚 ...
- 【TypeScript】学习笔记 把一些需要记的记录一下
安装typescript: npm install -g typescript 启动typesctipt自动编译: tsc 文件名.ts --watch 函数参数默认值: 1.有默认值参数的,声明在最 ...
- C#编程 委托 Lambda表达式和事件
委托 如果我们要把方法当做参数来传递的话,就要用到委托.简单来说委托是一个类型,这个类型可以赋值一个方法的引用. 声明委托 在C#中使用一个类分两个阶段,首选定义这个类,告诉编译器这个类由什么字段和方 ...
- 二 MyBatis 从入门到进阶 2 Maven 入门
1 Maven 的使用 1.1 本地仓库与中央仓库 本地仓库:Window \ Preferences \ Maven \ User Settings \ Local Repository 中央仓库: ...
- unzip 命令
NAME unzip - list, test and extract compressed files in a ZIP archive SYNOPSIS unzip [-Z] [-cflptTuv ...
- Selenium在IE浏览器中执行脚本时输入字符太慢问题解决方法
问题描述: IE浏览器中执行Selenium脚本的时候发现输入文本的时候总是一个字符一个字符的输入,并且输入每个字符之间都隔几秒. 解决方案: 将使用的IE浏览器驱动由64位的换成32位的.
- 分层最短路(牛客第四场)-- free
题意: 给你边权,起点和终点,有k次机会把某条路变为0,问你最短路是多长. 思路: 分层最短路模板题.题目有点坑(卡掉了SPFA,只能用dijkstra跑的算法). #include<iostr ...