python appium app ui 自动化
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 自动化的更多相关文章
- 基于python的App UI自动化环境搭建
Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...
- Python+appium+unittest UI自动化测试
什么是UI自动化 自动化分层 单元自动化测试,指对软件中最小可测试单元进行检查和验证,一般需要借助单元测试框架,如java的JUnit,python的unittest等 接口自动化测试,主要检查验证模 ...
- 基于PO和单例设计模式用python+selenium进行ui自动化框架设计
一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也 ...
- Appium App UI 自动化测试理论知识
(一)App自动化测试背景 随着移动终端的普及,手机应用越来越多,也越来越重要.App的回归测试用例数量越来越多,全量回归也越来越消耗时间.另外移动端碎片化严重(碎片化:兼容性测试,手机品牌多样.An ...
- python+selenium封装UI自动化框架
seleinum框架 框架的思想: 解决我们测试过程中的问题:大量的重复步骤,用自动化来实现 1)配置和程序的分离 2)测试数据和程序的分离 3)不懂编程的人员可以方便使用:使用的 ...
- (appium+python)UI自动化_01_自动化环境搭建【MAC版】
Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...
- uiautomator +python 安卓UI自动化尝试
使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...
- python UI自动化之切换iframe
python+selenium写UI自动化的时候,经常会遇到需要切换iframe的情况,这里介绍几种切换iframe的方式 1.使用id定位 driver.switch_to.frame(" ...
- Airtest 网易 UI 自动化工具 Airtest 浅用记录
一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架同时也支持原生Android App 的基于元素识别的UI自动化测试.本文主要使用目 ...
随机推荐
- C#LeetCode刷题之#344-反转字符串(Reverse String)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3933 访问. 编写一个函数,其作用是将输入的字符串反转过来. 输 ...
- Vue Vue-loader / VueLoaderPlugin / Webpack
在不用VueCli创建项目的时候,手写引入vue的时候,配置webpack的时候发现了这个问题 webpack vue-loader was used without the correspondin ...
- Vue 自定义VueRouter-简版
主要是思路,自己定义组件的时候可以借鉴 Vue-router的 类图 name options: ==> 记录构造函数中传入的对象,在 new VueRouter的时候传了一个对象( route ...
- Java多线程编程(6)--线程间通信(下)
因为本文的内容大部分是以生产者/消费者模式来进行讲解和举例的,所以在开始学习本文介绍的几种线程间的通信方式之前,我们先来熟悉一下生产者/消费者模式. 在实际的软件开发过程中,经常会碰到如下场景 ...
- jquery—实现能滚动的选项卡效果
选项卡在网页中很常见,可以说是必备的一个元素了,网上其实也有很多案例讲解选项卡的做法,写这篇文章,就是记录下自己的写一个的实例效果图: html: css样式: 主要是滚动条的的样式设置width:1 ...
- 技术分享丨数据仓库的建模与ETL实践技巧
摘要:如何搭建数据仓库,在这个过程中都应该遵循哪些方法和原则,项目实践中有哪些技巧. 一.数据仓库的“心脏” 首先来谈谈数据模型.模型是现实世界特征的模拟和抽象,比如地图.建筑设计沙盘,飞机模型等等. ...
- python3 - selenium 添加有账号密码的代理
from selenium import webdriver import string import zipfile # 打包Google代理插件 def create_proxyauth_exte ...
- J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
- JAVA设计模式简介及六种常见设计模式详解
一.什么是设计模式 ...
- golang安装及vscode编辑器配置
安装Go语言及搭建Go语言开发环境 下载 下载地址:https://studygolang.com/dl 系统选择: 根据不同系统下载安装包: 安装 Windows MAC安装 点开可执行程序 下一步 ...