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. 1.基础环境搭建是基础
  2. 2.获取到app的包名和activity路径名称--在后面代码中会遇到
  3. 3.打开appiumdesktop 连接手机获取到打开页面,定位元素路径
  4. 4.开始编写代码,跑简单的脚本,和web的基本差不多
  • 下面是实现的代码:
  1. from appium import webdriver#导入appium包
  2. import time
  3. #连接手机app初始化的一些信息
  4. desc={}
  5. desc['deviceName']='721QEBRA28767'#手机设备名称,adb devices
  6. desc['platformVersion']='7.1.2'#手机版本,在手机中:设置--关于手机
  7. desc['platformName']='Android' #手机类型,ios或android
  8. #输入命令,获取app信息:aapt dump badging C:\Users\83473\Desktop\mobileqq_android.apk
  9. desc['appPackage']='vchat.faceme'#包名
  10. desc['appActivity']='.LaunchActivity'#启动入口
  11. desc["unicodeKeyboard"] = "True"#appium提供的一种输入法,可以传中文。测试时直接用这个输入法
  12. desc["resetKeyboard"] = "True"#程序结束时重置原来的输入法
  13. desc["noReset"] = "True"#不初始化手机app信息(类似不清楚缓存)
  14. #启动服务端,再cmd窗口输入appium.如果appium没有安装好,可以打开appium-desktop.也相当于启动了服务
  15. driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desc)#访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
  16. #上面是基础的配置,现在开始实战
  17. time.sleep(3)
  18. 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()
  19. time.sleep(3)
  20. driver.find_element_by_id('vchat.faceme:id/iv_voice_room').click()
  21. time.sleep(2)
  22. driver.find_element_by_id('vchat.faceme:id/btn_add_voice_room').click()
  23. time.sleep(5)
  24. print('简单的测试完成')

appium基础之简单的小例子的更多相关文章

  1. 基于vue-cli、elementUI的Vue超简单入门小例子

    - 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. - 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vu ...

  2. appium+python+eclipse简单编写小示例!

    Appium简单介绍! 一.appium分成3个部分来看,分别为:appium服务端.appium客户端.设备端 1.设备端 WebDriverAgentRunner 的应用,以后简称 WDA,这个应 ...

  3. 一个简单的小例子让你明白c#中的委托-终于懂了!

    模拟主持人发布一个问题,由多个嘉宾来回答这个问题. 分析:从需求中抽出Host (主持人) 类和Guests (嘉宾) 类. 作为问题的发布者,Host不知道问题如何解答.因此它只能发布这个事件,将事 ...

  4. Spring简单的小例子SpringDemo,用于初略理解什么是Spring以及JavaBean的一些概念

    一.开发前的准备 两个开发包spring-framework-3.1.1.RELEASE-with-docs.zip和commons-logging-1.2-bin.zip,将它们解压,然后把Spri ...

  5. js 继承的简单易懂小例子

    js 继承 今天主要说原型链继承.构造继承.组合继承三种常用继承方式,分享一下我的理解. 原型链继承例子1 //原型继承function A(name){ this.name = name;}func ...

  6. java入门---简介&简单输出小例子&开发前准备

        Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出.J ...

  7. Oracle 数据库基础学习 (二) 学习小例子:创建一个表,记录商品买卖的情况

      运行环境:Oracle database 11g + PL/SQL Developer ex: --创建一个表 create table plspl_test_product( --加入not n ...

  8. struts2基础——最简单的一个例子

    学习版本:struts-2.3.15.3 一.导入jar包,可以参考 官方项目 blank. 二.添加配置文件:web.xml struts.xml web.xml: <filter> & ...

  9. Asp.net MVC4之 一个简单的小例子

    练习: 新建一个mvc项目 要求: 有3个视图  Login Index Details 目的:感受一下MVC与传统WebForm的差异性 WebForm的请求模型 MVC请求模型 传统WebForm ...

随机推荐

  1. 原来项目更换svn地址

    近期公司由于旧地址装修,临时更换办公地址:同时相应的网络地址也更换了.我们开发项目的svn地址根目录也得改变.所以怎么解决呢? 1.找到项目根文件夹: 右键:

  2. StringUtils字符串工具类左侧补齐(leftPad)、右侧补齐(rightPad)、左右两侧补齐(center)工具方法

    这里使用的是 org.apache.commons.lang.StringUtils;下面是StringUtils工具类中字符串左侧补齐的方法,示例如下: //左侧补齐 第一个参数:原始字符串,第二个 ...

  3. GitHub:Facebook

    ylbtech-GitHub:Facebook 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://github.com/facebook 2. ...

  4. GitHub:Alibaba

    ylbtech-GitHub:Alibaba 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://github.com/alibaba 2.   ...

  5. hibernate映射配置

    1. 普通字段类型 2. 主键映射 单列主键映射 多列作为主键映射 主键生成策略,查看api:   5.1.2.2.1. Various additional generators 数据库: Q:一个 ...

  6. UI的流畅度优化

    Android中所有的界面绘制工作都是在UI线程中进行的,提高UI流畅度的最核心根本在于释放UI线程.即:不在主线程中做耗时的操作. 很多人都知道,耗时的操作要放到子线程中去做,比如访问网络,比如读写 ...

  7. python的XML解析

    http://www.jb51.net/article/63780.htm http://www.runoob.com/python/python-xml.html http://kb.cnblogs ...

  8. gimp怎么移动选取中的图像并创建图层

    gimp怎么移动选取中的图像并创建图层 https://jingyan.baidu.com/article/414eccf6bf4d6e6b431f0a3b.html 听语音 原创 | 浏览:1148 ...

  9. Angular引入第三方库

    原文已经写的很好了.原文链接: https://blog.csdn.net/yuzhiqiang_1993/article/details/71215232 加上2点给自己用,引入bootstrap样 ...

  10. Java语言 List 和 Array 相互转换

    Java语言 List 和 Array 相互转换 List集合 转换为 Array数组 List集合 转换成 Array数组,有 2 种方式,代码如下: import java.util.ArrayL ...