首页 > 编程语言 >Appium+Python UI自动化框架

Appium+Python UI自动化框架

时间:2023-01-16 15:58:26浏览次数:41  
标签:Appium Python self driver element UI caps el1 find


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,self,driver,element,UI,caps,el1,find
From: https://www.cnblogs.com/pengxiaojie/p/17055568.html

相关文章

  • python random模块
    random()函数random()函数可以随机生成一个[0,1)的浮点数。例如importrandomprint(random.random())0.7258069853437111randint(a,b)函数randint(a,b)函数可以......
  • appium V1.17.1报错 An unknown server-side error occurred while processing the co
     点击报错  Anunknownserver-sideerroroccurredwhileprocessingthecommand.originalerror:pkg:/data/local/tmp/appium_cache解决办法:增加配置如下:a......
  • python 引用
    >>>a=256>>>id(a)139840231892864>>>b=256>>>id(b)139840231892864>>>id(a)==id(b)True>>>a=257>>>id(a)139840094039632>>>b=257>>>id(b)1398400......
  • YonBuilder 应用构建教程之移动端扩展
    YonBuilder 移动端扩展在上一篇文章中,我们通过对员工信息实体的移动端页面构建来对 YonBuilder 移动端配置的基础流程进行了简单的介绍,本篇文章则通过之前搭建的出入库实......
  • python中生成器与迭代器区别
    迭代器1.该对象需提供next方法,返回迭代器的下一项2.如果没有下一项即迭代完成时会抛出一个StopIteration异常。list1=[1,2,3]iter1=iter(list1)iter2=iter(lis......
  • YonBuilder 应用构建教程之移动端扩展
    YonBuilder 移动端扩展在上一篇文章中,我们通过对员工信息实体的移动端页面构建来对 YonBuilder 移动端配置的基础流程进行了简单的介绍,本篇文章则通过之前搭建的出入库......
  • python3内置函数
    查看内置函数#方法一dir(__builtins__)#方法二importbuiltinsdir(builtins)数据类型bool:布尔型(True,False)int:整形(整数)float:浮点型(小数)complex:复数......
  • python 排序
    对所有可迭代的对象进行排序操作sort与sorted区别:sort是应用在list上的方法sorted可以对所以可迭代的对象进行排序操作list的sort方法返回的是对已经存在的列表进行......
  • python安装
    1、https://www.python.org/downloads/windows/2、  3、安装过程中一定要勾选addtopath 4、自定义安装,然后可以更改安装路径,其他的复选框都没动过 ......
  • 【笔记】python连接神通数据库
    python连接国产神州通用数据库。一、准备下载whl及dll:链接:https://pan.baidu.com/s/1lwE-FwIsf-aYjoqCPij2hA提取码:49qp二、安装 目录如上。1、aci.dll加入......