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. JQuery的turn.js实现翻书效果

    前言: hello大家好~好久没更博了……今天来和大家分享下JQ的turn.js,下面我先来简单介绍下我们今天的主角turn.js. Turn.js是一个JavaScript库,它集合了HTML5的所 ...

  2. 漏洞重温之XSS(下)

    XSS总结 XSS的可利用方式 1.在登录后才可以访问的页面插入xss代码,诱惑用户访问,便可直接偷取用户cookie,达到窃取用户身份信息的目的. 2.修改昵称,或个人身份信息.如果别的用户在登录状 ...

  3. 《Java从入门到失业》第二章:Java环境(一):Java SE安装

    从这一章开始,终于我们可以开始正式进入Java世界了.前面我们提到过,Java分三个版本,我们这里只讨论Java SE. 2.1Java SE安装 所谓工欲善其事,必先利其器.第一步,我们当然是要下载 ...

  4. 2w字 + 40张图带你参透并发编程!

    并发历史 在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行.任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况. 这里说 ...

  5. 一个@Transaction哪里来这么多坑?

    前言 在之前的文章中已经对Spring中的事务做了详细的分析了,这篇文章我们来聊一聊平常工作时使用事务可能出现的一些问题(本文主要针对使用@Transactional进行事务管理的方式进行讨论)以及对 ...

  6. Cannot instantiate the type ......的解决

    使用public abstract class MainWindow implements ActionListener{} 之后创建对象MainWindow window = new MainWin ...

  7. SparkStreaming-DStream(Discretized Stream)

    DStream(Discretized Stream)离散流 ◆ 和Spark基于RDD的概念很相似,Spark Streaming使用离散流 (discretized stream)作为抽象表示,叫 ...

  8. nova start 虚机的代码流程分析

    nova start 虚机的代码流程分析,以ocata版本为分析基础1.nova api服务接受用户下发的 nova start启动虚机请求其对应的http restfull api接口为post / ...

  9. pytest与Allure集成

    1.窗口的方式 重启jenkins,重新连接,继续上次的内容.(注意:点击launch,重新下载slave-agent文件,然后双击slave-agent文件进行连接.上次下载的slave-agent ...

  10. Windows中使用PowerShell查看和卸载补丁

    查看:get-hotfix -id KB4470788 卸载:wusa /uninstall /kb:3045999 get-hotfix -id KB4470788 wusa /uninstall ...