我们实际跑自动化脚本的过程中,是需要用脚本调用appium启动app的,接下来就尝试写Python脚本启动app并登陆app。环境为Windows10 + Python3.7 + appium1.18.0 + Android手机 + 今日头条app + Pycharm

一,连接测试手机,获取测试机及被测APP配置

具体的获取方法请参考APP自动化测试之appium连接真机启动app,配置信息如下:

{"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "com.ss.android.article.news","appActivity": ".activity.MainActivity"
}

二,编写Python脚本启动app

1,编辑器推荐大家使用PyCharm,下载pycharm社区版本,免费无需破解。

2,因为登陆需要输入账号、密码,所以这里新增了两个参数。参数unicodeKeyboard即是否启用Unicode格式输入字符串,默认值为False,设置为True则表示启用。参数resetKeyboard即使用unicodeKeyboard功能进行Unicode输入后,是否将键盘重置为原始状态,默认False。

desired_caps = {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "com.ss.android.article.news","appActivity": ".activity.MainActivity","unicodeKeyboard": True,"resetKeyboard": True,
}

3,传入desired_caps通过appium启动app,构造driver对象(即创建一个session)。

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

appium在本机开启的话则IP为127.0.0.1,端口默认为4723

4,电脑连接手机,开启appium服务,运行脚本,调试是否能启动app。

from appium import webdriverdesired_caps = {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "com.ss.android.article.news","appActivity": ".activity.MainActivity","unicodeKeyboard": True,"resetKeyboard": True,
}# 启动app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

我们会看到手机上今日头条app被打开。

三,通过appium Inspector定位元素,登陆APP

1,登陆操作步骤为:
启动今日头条app --> 点击【我知道了】–> 确定管理权限 --> 点击底部tab“未登陆” 进入未登录页面 --> 点击 “登陆” --> 点击“…” --> 选择密码登陆 --> 输入账号密码 --> 点击登陆

2,根据操作步骤,使用appium的Inspector获取登陆相关操作元素的属性

[进入appium Inspector页面](#),先点击选择元素按钮,然后在窗口左侧展示的手机页面上,点击选择需要定位的元素,窗口右侧会展示该元素的属性值。手机app页面切换后,点击窗口刷新页面按钮,左侧页面会刷新。


appium Inspector获取不到的元素属性的话,还可以用Android SDK里自带的工具uiautomatorviewer获取。后面会专门介绍怎样获取元素属性,这里不详述。

3,登陆操作脚本

# -*- coding:utf-8 -*-import time
from appium import webdriverdesired_caps = {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "com.ss.android.article.news","appActivity": ".activity.MainActivity","unicodeKeyboard": True,"resetKeyboard": True,
}# 启动app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)# 登陆操作
driver.find_element_by_id("com.ss.android.article.news:id/chj").click() # 点击【我知道了】
time.sleep(1)
driver.find_element_by_id("android:id/button1").click() # 点击权限管理-确定按钮
time.sleep(1)
driver.find_element_by_xpath("//android.widget.TabWidget/android.widget.RelativeLayout[@index=3]").click() # 点击未登录
time.sleep(1)
driver.find_element_by_id("com.ss.android.article.news:id/a1c").click() # 未登录页点击登录按钮
time.sleep(1)
driver.find_element_by_id("com.ss.android.article.news:id/bfm").click() # 登录页点击“。。。”
time.sleep(1)
driver.find_element_by_xpath("//android.widget.LinearLayout[@index=4]").click() # 选择密码登录
time.sleep(1)
driver.find_element_by_id("com.ss.android.article.news:id/c7").send_keys("********")   # 输入账号
time.sleep(1)
driver.find_element_by_id("com.ss.android.article.news:id/ch").send_keys("********")   # 输入密码
time.sleep(1)
driver.find_element_by_id("com.ss.android.article.news:id/a31").click() # 点击登录
time.sleep(5)

我们查看手机,会发现手机正在自动做登录今日头条的app操作,且登录成功。

至此,我们通过编写一个简单的Python脚本完成了登录app的操作,如果加上断言,就是一条完整的用例。


如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

Python+Appium自动化测试-编写自动化脚本相关推荐

  1. 基于python + Appium的安卓自动化

    基于python + Appium的安卓自动化 最近要双11了,刷喵糖比较火,看到github上一个刷喵糖的项目testerzhang/taobaomiao.git,也成功跑起来了,顺便研究下了实现方 ...

  2. 虫师python appium自动化测试书_appium对博客园APP进行自动化测试

    比官方的好用,官方的APP首页打开很慢.我刚好在用 appium,顺便对该APP写了个简单的自动化测试,供测试同学学习. ### 下载与安装 最终,得到的APP信息如下: appPackage:com ...

  3. python+appium自动化测试:输入中文失败的解决办法(只针对夜游模拟器)

    关于写python+appium自动化测试脚本时,输入不了中文的问题,在网上百度了很多,都是加入下面2行代码: caps["unicodeKeyboard"] = "Tr ...

  4. 使用nodejs编写自动化脚本,真香!

    使用nodejs编写自动化脚本,真香! 说到写脚本,最为人熟知的语言必然是shell,再者python,当然现在也出现了很多界面友好,支持可视化拖动编写脚本的软件,如quiker等.但本文要介绍的是n ...

  5. js array formdata_开源软件分享:一个免ROOT支持用JS编写自动化脚本的神器

    最近在逛github时发现一个不错的安卓开源项目,支持用javascript编写自动化脚本,可以模拟人工点击.滑动等一系列操作. auto.js Auto.js 简介 一个支持无障碍服务的Androi ...

  6. Python微信跳一跳自动化脚本

    Python微信跳一跳自动化脚本 前言 准备 模块及版本 思路与流程 详细步骤 总结 前言 这是我在CSDN上的第一篇文章,以后会陆续记录我的学习生涯,希望我的知识能帮助到更多的朋友~ 准备 这篇将详 ...

  7. python appium自动化测试脚本能怎么用_Appium自动化测试系列2- 写一个Python测试脚本来测试一下YY语音...

    我们在<Appium自动化测试系列1-Appium环境的安装和配置>里已经搭好了Appium的基本环境,这一章,我们就来真刀真枪使用一下Appium, 看看Appium是如果来实现自动化测 ...

  8. python编写自动化脚本 与shell_脚本安装Discuz论坛(shell + Python 实现自动化安装)...

    实验环境 1.shell 脚本:linux centos 7 系统 2.Python shell 脚本:window 系统 3.其他:python selenium 模块,谷歌浏览器, 谷歌浏览器驱动 ...

  9. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

最新文章

  1. 十六届智能车全向组硬件开源 | 上海海事大学全向行进组
  2. 基于STM32F103ZET6 HC_SR04超声波测距模块
  3. Java http方式提交短信到短信网关
  4. 利用记录型信号量机制: wait(s), signal(s)解决进程同步问题
  5. 20 个最常用的 Git 命令用法说明及示例
  6. ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
  7. 深入理解Golang之context
  8. android 开源 视频播放器,安卓视频播放器——ijkPlayer(Bilibili开源)
  9. StringUtil里面的常用的方法
  10. Android 批量修改文件格式/文件名的骚操作
  11. ug录入属性_ug表格属性
  12. excel中将两列交叉合并为一列
  13. Rust学习:3_变量绑定与解构
  14. java处理excel,将xlsx转xls
  15. 计算机音乐专业考研,武汉音乐学院2021年硕士研究生招生考试《计算机音乐作曲》考试大纲...
  16. C# 人脸检测 人脸比对 活体检测 口罩检测 年龄预测 性别预测 眼睛状态检测
  17. 被虐日記----开心并快乐着的求各种虐
  18. layui中table表格内容过多自动换行
  19. linux usb外接硬盘,在Linux系统上使用外置USB硬盘
  20. 利用iframe实现局部打印(区域打印)

热门文章

  1. 下列变量名不符合python命名规范的是_下列不合法的Python变量名是________
  2. 关于万向锁(Gimbal lock)问题的理解及解决
  3. 浮点数的表示 —— 基本格式、规格化、表示范围
  4. 第十三周 【项目1 - 验证算法之二叉排序树】
  5. Go string函数与strconv.Itoa函数的区别
  6. “couldn‘t connect to trainer on port 5004 using api version 1.4.0. will perform inference instead.”
  7. 软件测试与质量保证 - 复习与面试题库(from hitwh)
  8. WebsocketSocketIO
  9. 比较两个实型数据是否相等
  10. Voliate关键字的作用