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. C# winform 弹出窗体给父窗体传值

    Winform程序有很多传值的方法,抱着学习的态度.利用委托注册事件的方法,给窗体统一添加事件: 首先定义一个Frm_Base: namespace 任意 { public partial class ...

  2. 003.Nginx配置解析

    一 Nginx配置文件 1.1 Nginx主配置 Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织,通常每一个区块以一对大括号{}来 ...

  3. 2020-06-02:千万级数据量的list找一个数据。

    福哥答案2020-06-02: 对于千万级长度的数组单值查找:序号小的,单线程占明显优势:序号大的,多线程占明显优势.单线程时间不稳定,多线程时间稳定. go语言测试代码如下: package mai ...

  4. 苹果TF上架的iOS应用怎么下载

    苹果TF上架的iOS应用怎么下载 苹果TF上架的iOS应用是无法通过App Store搜索到的,需要用户先从App Store中搜索下载testflight内测商店.当开发者进行苹果TF上架成功以后会 ...

  5. Vue在v-for中给css传递一个数组参数

    需求就是将很多个数据,以进度条的形式展示在页面上,形成一个可视化. 接下来是html代码 <!DOCTYPE html> <html> <head> <tit ...

  6. excel表格,根据某一列的值对整行进行颜色填充

    1.选中要影响的表格范围,选择 “条件格式”,选择 “新建规则” (2)选择 “使用公式确定要设置格式的单元格”,录入公式,选择 “ 格式”,注意: 公式为:=$H1="待解决" ...

  7. 机器学习:支持向量机(SVM)

    SVM,称为支持向量机,曾经一度是应用最广泛的模型,它有很好的数学基础和理论基础,但是它的数学基础却比以前讲过的那些学习模型复杂很多,我一直认为它是最难推导,比神经网络的BP算法还要难懂,要想完全懂这 ...

  8. Java代替if和switch的方法(记录一下)

    package xcc.mapTest; /** * @Decription: 接口 * @Author: * @Date: * @Email: **/ public interface Functi ...

  9. 怎么创建一个良好的Git提交信息

    译   原文:https://dev.to/chrissiemhrk/git-commit-message-5e21 提交信息是对提交之前添加和更改的文件所做的更改的简短描述. 良好的提交信息不仅对你 ...

  10. Hello,Vue

    Vue版本 Vue完整版 有编译器compiler,体积大功能多,可以直接把html字符串变成DOM节点 视图,此处为html字符串,写在index.html里或者写在new Vue构造选项templ ...