import datetime
from appium.webdriver.common.touch_action import TouchAction
from appium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver.support.wait import WebDriverWait

class TestDemo:
def setup(self):
caps = {}
caps["platformName"] = "Android"
caps["plathformVersion"] = "版本"
caps["deviceName"] = "系统名称"
caps["appPackage"] = "包名"
caps["appActivity"] = "应用程序"
caps["autoGrantPermissions"] = True
caps["unicodeKeyboard"] = True #输入中文

self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)
self.driver.implicitly_wait(10)#隐式等待

def test_demo(self):#首次同意弹窗
el1 = self.driver.find_element(By.ID, "")
el1.click()

def loaded(driver):#判断是否存在客户端弹窗,有则关闭无则跳过
print(datetime.datetime.now())
if len(self.driver.find_elements(By.ID,''))>=1:
self.driver.find_element(By.ID,'').click()
return True
else:
return False
try:
WebDriverWait(self.driver,10).until(loaded)
except:
print("没有广告弹窗")

#点击我的
el1 = self.driver.find_element(By.ID,"")
el1.click()
#登录
el1 = self.driver.find_element(By.ID,"")
el1.click()
sleep(1)
#点击账号输入框
el1 = self.driver.find_element(By.ID,"")
el1.send_keys("15296707948")
#输入验证码
el1 = self.driver.find_element(By.ID,"")
el1.send_keys("9797")
#勾选同意按钮
el1 = self.driver.find_element(By.ID,"")
el1.click()
#点击登录
el1 = self.driver.find_element(By.ID,"")
el1.click()
sleep(2)
print("~~~~~~~~~登录成功!!~~~~~~~~~~")

def teardown(self):
self.driver.quit()

以上是关于自动化脚本的大概轮廓,下面会列举一些关于写脚本的过程中遇到的一些总结。随时会补充!

1)获取APP入口---appium连接手机时必传的参数

adb logcat | grep -i displayed

备注:mac本可以直接在命令窗口中输入命令来获取,windows本需要在git bash中输入命令获取

2)清理App的缓存,使在测试的时候保证环境时干净的

adb shell pm clear com.audio.tingting

3)函数名词解释:pree  按下、release 释放、move_to 移动/滑动、long_pree 长按

4)页面向上滑动  ---这样可以避免在滑动时先点击元素后再去拖动,导致如果页面元素均为热区会优先实现对应的点击功能

el1=self.driver.find_element(By.XPATH,'xxxx')

el2=self.driver.find_element(By.XPATH,'xxxx')

self.driver.drag_and_drop(el1, el2)#定位底部位置和顶部位置后向上滑动



Appium+Python UI自动化框架的更多相关文章

  1. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

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

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

  3. (appium+python)UI自动化_08_unittest编写测试用例

    前言 unittest是python自带的单元测试框架,类似于Junit(Java单元测试框架).支持自动化测试,可编写测试前置&后置条件,并且可批量运行测试用例并生成测试报告. 使用unit ...

  4. (appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】

    前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是 ...

  5. (appium+python)UI自动化_02_appium启动手机app

    前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开 ...

  6. (appium+python)UI自动化_03_元素定位工具

    前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...

  7. (appium+python)UI自动化_10_adb常用命令

    前言 adb(Android Debug Bridge)工具是android-sdk里的一个工具,是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互.在app自动化测试过程中,有时要用到adb命 ...

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

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

  9. 基于Python3 + appium的Ui自动化测试框架

    UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools ...

  10. ui自动化笔记 selenium_webdriver,ui自动化框架(web)

    Selenium学习笔记 selenium webdriver是业界公认ui自动化测试的标准,其封装的api可以对浏览器的任何地方进行操作 selenium2.0和selenium3.0的区别? 3. ...

随机推荐

  1. Windows10下SecureCRT、SecureFX安装与破解(超级详细)

    整理了Windows10下最新版本SecureCRT9.1.SecureFX9.1安装 1.资源地址: 链接:https://pan.baidu.com/s/1XoQqpRlpBm6Tvc0fHni6 ...

  2. JSONObject没有parseObject方法

    一定是你引入的包不对,你把上面的import 删掉,重新导入包就可以了. 在这之前加入依赖: ` net.sf.json-lib json-lib 2.4 <dependency> < ...

  3. win10 安装mariadb

    在MariaDB10.2.17 以前.解压后在目录下看到my-huge.ini.my-innodb-heavy-4G.ini.my-large.ini.my-medium.ini.my-small.i ...

  4. debian11 bspwm+polybar问题记录(siji字体无法正常显示)

    一.siji字体无法显示. 很懒很菜,就想用开箱即用的原始配置依然遇到了问题...plybar中的bitmap字体siji无法正常显示.即便按照github的siji官方脚本安装了siji字体还是不行 ...

  5. OC基础 - iOS在枚举赋值时为何采用左移格式

    枚举值 1 - iOS 枚举成员在赋值时往往是如下模式:左移对齐 2 - 为何这般设计 ?其一提高了阅读性:其二便于计算,能够更好的表达枚举值的含义 1 #import "ViewContr ...

  6. qt 运行环境配置

    注意事项: 1 在设备上进行如下配置 root@am335x-pico:/opt# export QTDIR=/opt/qt-4.6.2-arm root@am335x-pico:/opt# expo ...

  7. 【情景题】NPDP经典题目(下)

    1.员工Mary是ACE电气公司的产品经理,公司高管要求她准备一份评价标准清单,从而以该清单为基础来对该产品组合中的新机会进行评价.她提交的清单如下:-潜在市场份额-对公司获利能力的潜在贡献-产品开发 ...

  8. office2016word打开总是提示安全模式

    突然打开word和Excel提示是否使用安全模式,如果选择否就自动退出office,选择是进入后,编辑一下也会自己退出,非常郁闷. 之后上网查看,尝试了许多: 1.win+R 运行%appdata%\ ...

  9. nmap扫描结果保存 xml to html for windows

    首先 Nmap扫描443端口并保存为xml报告输出 nmap -T5 -Pn -p 443 -iL C:\Users\loki\Desktop\443_Scan.txt -oX C:\Users\lo ...

  10. DOS批处理命令,自动获取本机系统及硬件配置信息

    可以配合域策略自动下发执行, 批量收集域内电脑配置; 手动执行亦可; 如下保存成.bat批处理文件执行即可. /*&cls&echo off&cd /d "%~dp0 ...