#Appium+Python实现自动化测试

Appium简介 官方的概述为: Appium is an open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS, Android, and Windows apps using the WebDriver protocol.

Appium是一个开源的测试自动化框架,用于本地、混合和移动Web应用程序。

它使用WebDevices协议驱动iOS、Android和Windows应用程序。也就是可以用它来帮助我们实现自动化测试,代替人为的点击,每次发版都能够按照案例清单完整的跑一套流程,保证当前版本的稳定性。

支持多种语言开发定制 python,javaSprict,java,ruby,Objective C,php,.net,RobotFramework 其中Android SDK ≥ 16

支持多平台 mac和Windows

Appium 安装方式

1:直接安装Appium客户端

Appium官网,点击downLoad即可

2:命令行本地安装 1:安装node 2:npm install -g appium 3:npm install -g appium-doctor appium-doctor是检查你的本地环境是否正常的工具 注:如果权限问题请加上sudo,appium-doctor在新版appium已经移除,需要利用npm安装 sudo npm install -g appium-doctor,安装完成后输入appium-doctor检测环境是否正常 如果遇到缺少js文件错误,说明你的node版本太低,需要升级nodejs,升级的方式为 1: sudo npm cache clean -f 清楚nodejs的cache 2:sudo npm install -g n 管理npm的工具 3:sudo n stable 升级node 4: sudo npm install npm@latest -g 更新npm 4:node -v查看node版本(最新为11.4.0) 再次运行appium-doctor查看本地环境配置是否正常,不正常修复即可

安装Python 安装方式网上很多,不在阐述,目前我用的是python3.7 推荐的ide为:Pycharm

编写自动化用例 我们的这次用的apk为微信

希望能够通过appium帮我们实现微信登录并跳转到我的->个人信息界面from appium import webdriver import time class UiTest(object): def __init__(self): # 设备信息 self.config = { "platformName": "Android", "platformVersion": "5.1.1", "deviceName": "Pixel XL", "automationName": "app", "app": '/Users/davidxiong/Desktop/wx.apk', } # 有多重模拟点击方式: # 1:坐标, # 2:id # 3:xpath # 4:name,这边我采用坐标和xpath,因为微信的元素id会动态改变 # 手机号元素路径 self.phone = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.EditText' # 手机号点击登录元素路径 self.phone_enter = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.Button[2]' # 密码路径 self.pass_word = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.EditText' # 密码确认路径 self.pass_word_enter = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.Button[2]' # 关闭匹配框 self.close_match = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.Button[1]' # 个人中心 self.mine_info = '//android.widget.FrameLayout[@content-desc="当前所在页面,与的聊天"]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.View/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.FrameLayout/com.tencent.mm.ui.mogic.WxViewPager/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ListView/android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.LinearLayout' self.driver = webdriver.Remote('http://localhost:4723/wd/hub', self.config) # editText输入 def edit_input(self, et_id, content, xpath='', timer=-1): if xpath == '': pl = self.driver.find_element_by_id(et_id) else: pl = self.driver.find_element_by_xpath(xpath) if timer != -1: time.sleep(timer) pl.send_keys(content) # 点击事件 def click(self, btn_id, xpath='', timer=-1): if timer != -1: time.sleep(timer) if xpath == '': self.driver.find_element_by_id(btn_id).click() else: self.driver.find_element_by_xpath(xpath).click() def run(self): time.sleep(2) # 点击登录 self.driver.tap([(259, 1773)]) # 输入手机号 self.edit_input('ht', '你的账号', xpath=self.phone, timer=1) # 点击下一步,这边采用xpath self.click('akb', xpath=self.phone_enter) # 输入密码 time.sleep(2) self.edit_input('ht', '密码', xpath=self.pass_word, timer=1) # 登录R self.click('akb', xpath=self.pass_word_enter) time.sleep(8) # 关闭提示匹配通讯录弹出框 self.click('akb', xpath=self.close_match) # 等地同步数据 time.sleep(30) # 点击我的,这边采用坐标 self.driver.tap([(933, 1823)]) # 查看我的个人信息 self.click('akb', xpath=self.mine_info) if __name__ == "__main__": UiTest().run()

登录python自动化_Appium+Python实现自动化登录相关推荐

  1. python樱桃小丸子_appium+python自动化框架搭建

    一.需要安装软件 1.jdk1.6.0 (64位) 2.android-sdk-windows 3.python:2.7(3.6也可以) 4.appium:1.4.13.1 5.Node.js:nod ...

  2. 手机python环境_appium+python环境搭建

    前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...

  3. python 手机自动化_Appium+python自动化1-环境搭建(上)

    前言 appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python.小编擅长Python,所以接下来的教程是appium+py ...

  4. python windows ui自动化_appium+python+windows UI自动化 四.简单使用Appium客户端

    前期准备 关闭 app adb shell pm  path  cn.gloud.client.mobile 启动APP adb shell am start -W -n cn.gloud.clien ...

  5. python实现微信小程序的接口自动化_appium+python自动化56-微信小程序自动化(摩拜为例)...

    前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...

  6. 手机版python配置_appium+python 连接手机设备的yaml配置文件

    1.YAML基本语法(参考的菜鸟教程) 2.pyCharm导入YAML模块 点击file → setting,然后按下图操作: 在输入框中输入"pyYAML",勾选右下方" ...

  7. appium python实例_Appium Python 常用元素定位方法测试小米计算器实例

    常用的元素定位方法 Uiautomator 定位 image.png text属性的方法 #text driver.find_element_by_android_uiautomator('new U ...

  8. 【原来Python爬虫还可以这么玩!】python爬虫自动化实现B站自动登录

    从新开始吧,而不是重新开始 哈喽,大家好呐,很久不见,甚是想念! 小夜斗又和大家见面啦,距离小夜斗上次更新爬虫文章又过去了很久辽! 因为在学校的时候有太多事情要做了,就疏忽了博客的更新呐,感觉以后还是 ...

  9. 推荐一位玩自动化的 Python 爱好者

    今天给大家推荐一位 Python 类的公众号「AirPython」,作者:星安果,果哥有 7 年的编程学习经验,热爱 Python 爬虫.Web.数据分析及自动化,平时喜欢分享一些实用.有趣的 Pyt ...

最新文章

  1. markdown 使用
  2. 手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选
  3. python在子类中添加新的属性_pycharm实现在子类中添加一个父类没有的属性
  4. Android开发之Retrofit小试牛刀
  5. invalid use of null value
  6. java代码实现解压文件_Java压缩/解压文件的实现代码
  7. MAC报错:-bash: mysqlbinlog : command not found
  8. C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
  9. PAT (Basic Level) 1004. 成绩排名 (20)
  10. 【python】谷歌翻译
  11. 谷歌浏览器:快速切换搜索引擎
  12. 2021年全球手工具收入大约16510百万美元,预计2028年达到18370百万美元
  13. 转盘抽奖脚本html,js抽奖转盘实现方法分析
  14. 测温监控摄像头_温度湿度远程监控摄像头
  15. rac的FAILOVER 和LOAD_BALANCE参数,yes和on是否通用!
  16. html5 手机站点,HTML5移动端手机网站基本模板 HTML5基本结构
  17. 用html5 js实现浏览器全屏
  18. 游戏突发随机事件设计
  19. 将私人对话发布到公共空间来寻求正义是否可取
  20. 【期末考试】计算机组成原理突击复习

热门文章

  1. 调研了下 AI 作曲,顺便做了期视频...快进来听歌!
  2. NeurIPS 2020 | Glance and Focus: 通用、高效的神经网络自适应推理框架
  3. 大型网站系统的特点和架构设计
  4. 斯坦福李纪为博士毕业论文:让机器像人一样交流
  5. Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义
  6. SVN:安装svn进行上传和检出文件的常用命令
  7. 介绍一些知识图谱的实际应用类项目
  8. AOP和Spring AOP介绍
  9. 网页版blast构建
  10. mysql的字码设置方法