1、下载Android-SDK、夜神安卓模拟器、Appium、adb命令执行包并配置环境变量

2、打开夜神

3、打开Appium进行配置,配置如下

4、启动命令,到夜神bin目录下执行

adb connect 127.0.0.1:62001

adb devices

5、运行测试代码,自动安装apk并启动

# coding=utf-8

import re
import time
import yaml_ini
from appium import webdriver
from create_order import generate_orders_all # android app 版本信息
app_version : {'platformName': 'Android', # Android或iOS
'platformVersion': '5.1.1', # 安卓版本
'deviceName': '127.0.0.1:62001 device', # 手机设备名称,通过adb devices 查看
'appPackage': 'com.test.test', # 用 aapt dump badging 查看包名
'appActivity': 'com.test.main_module.ui.SplashAt',
'newCommandTimeout': ''} # 无操作是默认关闭时间 app_ip = yaml_ini.read_yaml()['app_ip']
app_version = yaml_ini.read_yaml()['app_version']
dr = webdriver.Remote('http://127.0.0.1:4723/wd/hub', app_version) # 启动服务器地址,后面跟的是手机信息 def login(): # 输入账户密码
time.sleep(5)
dr.find_element_by_id('com.test.test:id/edt_phone').send_keys('')
dr.find_element_by_id('com.test.test:id/edt_pwd').send_keys('')
dr.find_element_by_id('com.test.test:id/tv_login').click() # 输入短信验证码
time.sleep(3)
dr.find_element_by_id('com.test.test:id/txt_pin_entry1').send_keys('')
time.sleep(3)
dr.find_elements_by_class_name('android.widget.TextView')[3].click() # 点击登陆
time.sleep(3)
dr.find_element_by_id('com.test.test:id/tv_open_latter').click() # 不开启手势登陆
time.sleep(3)
dr.find_element_by_id('com.test.test:id/ivClose').click() # 判断登陆是否成功
time.sleep(3)
login_data = dr.find_element_by_id('com.test.test:id/tv_online').text
if '在线' in login_data:
print('登陆成功') def start_order():
# 开始接单
# time.sleep(3)
# dr.find_elements_by_class_name('android.widget.TextView')[34].click() # 抢单
generate_orders_all()
time.sleep(3)
dr.find_element_by_id('com.test.test:id/tv_grab').click() time.sleep(3)
grab_result = dr.find_element_by_id('com.test.test:id/tv_status').text
if '等待对方付款' in grab_result:
grab_order_id = dr.find_element_by_id('com.test.test:id/tv_order_num_value').text
grab_order_money = dr.find_element_by_id('com.test.dcpay:id/tv_money_value').text
print('抢单成功: ' + grab_order_id + ' ' + grab_order_money) time.sleep(3)
dr.find_element_by_id('com.test.test:id/tv_confirm').click() time.sleep(3)
send_money = dr.find_element_by_id('com.test.test:id/receive_amount').text
if '请输入实际收款金额' in send_money: time.sleep(3)
dr.find_element_by_id('com.test.test:id/receive_amount').click() amount = (str(grab_order_money)).lstrip('¥')
dr.find_element_by_id('com.test.test:id/receive_amount').send_keys(amount) time.sleep(3)
dr.find_element_by_id('com.test.test:id/receive_confirm').click() time.sleep(3)
order_y_n = dr.find_element_by_id('com.test.test:id/tv_order_status').text
if '交易成功' == order_y_n:
print('完成订单')

python appium app ui 自动化的更多相关文章

  1. 基于python的App UI自动化环境搭建

    Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...

  2. Python+appium+unittest UI自动化测试

    什么是UI自动化 自动化分层 单元自动化测试,指对软件中最小可测试单元进行检查和验证,一般需要借助单元测试框架,如java的JUnit,python的unittest等 接口自动化测试,主要检查验证模 ...

  3. 基于PO和单例设计模式用python+selenium进行ui自动化框架设计

    一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也 ...

  4. Appium App UI 自动化测试理论知识

    (一)App自动化测试背景 随着移动终端的普及,手机应用越来越多,也越来越重要.App的回归测试用例数量越来越多,全量回归也越来越消耗时间.另外移动端碎片化严重(碎片化:兼容性测试,手机品牌多样.An ...

  5. python+selenium封装UI自动化框架

    seleinum框架 框架的思想:  解决我们测试过程中的问题:大量的重复步骤,用自动化来实现    1)配置和程序的分离    2)测试数据和程序的分离    3)不懂编程的人员可以方便使用:使用的 ...

  6. (appium+python)UI自动化_01_自动化环境搭建【MAC版】

    Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...

  7. uiautomator +python 安卓UI自动化尝试

    使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...

  8. python UI自动化之切换iframe

    python+selenium写UI自动化的时候,经常会遇到需要切换iframe的情况,这里介绍几种切换iframe的方式 1.使用id定位 driver.switch_to.frame(" ...

  9. Airtest 网易 UI 自动化工具 Airtest 浅用记录

    一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架同时也支持原生Android App 的基于元素识别的UI自动化测试.本文主要使用目 ...

随机推荐

  1. Django中的ORM如何通过数据库中的表格信息自动化生成Model 模型类?

    Inspectdb Django项目通过绑定的数据库中的相应表格直接自动化生成Model 模型类 python manage.py inspectdb Django 中的 ORM 可以实现对象关系映射 ...

  2. React的useEffect与useLayoutEffect执行机制剖析

    引言 useEffect和useLayoutEffect是React官方推出的两个hooks,都是用来执行副作用的钩子函数,名字类似,功能相近,唯一不同的就是执行的时机有差异,今天这篇文章主要是从这两 ...

  3. C#LeetCode刷题之#559-N叉树的最大深度​​​​​​​(Maximum Depth of N-ary Tree)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4088 访问. 给定一个 N 叉树,找到其最大深度. 最大深度是指 ...

  4. 使用Spring Boot开发者工具进行自动重启和页面自动刷新

    简介 大家可能都听说过开发Node.js应用时可以使用多种工具对开发者提供便利,如WebPack提供了开发者服务器来支持js应用动态更替,并在保存文件时自动刷新浏览器.Spring Boot也提供了相 ...

  5. asp.net core mvc和angular项目的一些问题

    最近公司布置任务,用asp.net core mvc和angular改写原来的一个用Silverlight做的项目.从来没搞过,找了两本书看了一天,又看了一天代码,大致心里有底了,就开始动手.没想到一 ...

  6. Python 用load_workbook 读取excel某个单元格数据、读取excel行数、列数

    from openpyxl import load_workbook path = r'D:\pywork\12' # EXCEL信息所在文件夹 e= load_workbook(path + '/' ...

  7. Istio Routing 实践掌握virtualservice/gateway/destinationrule/AB版本发布/金丝雀发布

    原文 在学习像 Istio 这样的新技术时,看一下示例应用程序总是一个好主意. Istio repo 有一些示例应用程序,但它们似乎有各种不足. 文档中的 BookInfo 是一个很好的示例. 但是, ...

  8. META.表

    META.表

  9. Reinforcement Learning, Fast and Slow

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 1 DeepMind, London, UK2 University College London, London, UK3 Prince ...

  10. 一篇文章教会你使用Java8中的Lambda表达式

    简介 Java 8为开发者带来了许多重量级的新特性,包括Lambda表达式,流式数据处理,新的Optional类,新的日期和时间API等.这些新特性给Java开发者带来了福音,特别是Lambda表达式 ...