在写测试用例的时候,最常用的就是方法的调用,
我们在这里,把公共方法封装到一个文件中,
这样以后需要使用,直接调用这个方法就可以了。
直接上代码:

common_func.py

# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-7-9
"""'''
公共方法封装
'''
from baseView.baseView import BaseView
from public.desired_caps import appium_desired
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
import logging.config
import os,time,csvclass Common(BaseView):#取消升级和跳过引导按钮cancel_upgradeBtn = (By.ID,'android:id/button2')#跳过按钮skipBtn = (By.ID,'com.tal.kaoyan:id/tv_skip')#登录/注册后浮窗广告 关闭按钮wemedia_cancel= (By.ID,'com.tal.kaoyan:id/view_wemedia_cacel')def check_upgradeBtn(self):'''追加 try...except...else 语句如果没有定位到update button, 则直接执行except如果定位到update button,则执行else语句:return:'''logging.info('============check_updateBtn===============')try:element = self.driver.find_element(*self.cancel_upgradeBtn)except NoSuchElementException :logging.info('update element is not found!')else:logging.info('click cancel button')element.click()def check_skipBtn(self):'''追加 try...except...else 语句如果没有定位到skip button, 则直接执行except如果定位到skip button,则执行else语句:return:'''logging.info('============check_skipBtn===============')try:element = self.driver.find_element(*self.skipBtn)except NoSuchElementException:logging.info('skip element is not found!')else:logging.info('click skip button')element.click()def get_screenSize(self):'''获取屏幕尺寸x:宽y:高:return:'''x = self.get_window_size()['width']y = self.get_window_size()['height']return x,ydef swipeLeft(self):'''向左滑动,x1:横坐标起始位置y1:纵坐标起始位置x2:横坐标终止位置1000:持续时间 1000ms:return:'''logging.info('==========swipeLeft==============')l = self.get_screenSize()y1 = int(l[1] * 0.5)x1 = int(l[0] * 0.95)x2 = int(l[0] *0.25)self.swipe(x1,y1,x2,y1,1000)def getTime(self):'''获取当前时间,以年-月-日  时_分_秒  形式显示:return:'''self.now = time.strftime("%Y-%m-%d %H_%M_%S")return self.nowdef getScreenShot(self,module):'''设置截图:param module::return:'''time  = self.getTime()base_path = os.path.dirname(os.path.dirname(__file__))screenshot_path = os.path.join(base_path,'screenshot')image_file = os.path.join(screenshot_path,'%s_%s.png' %(module,time))# image_file = os.path.dirname(os.path.dirname(__file__)) +'/screenshot/%s_%s.png' %(module,time)logging.info('get %s  screenshot ' % module)self.driver.get_screenshot_as_file(image_file)def check_market_ad(self):'''检测登录或者注册之后的界面浮窗广告:return:'''logging.info('=======check_market_ad=======')try:element = self.driver.find_element(*self.wemedia_cancel)except NoSuchElementException:passelse:logging.info('close market ad')element.click()def get_csv_data(self,csv_file,line):'''读取csv文件里的数据1.用到的是enumerate()方法2.encoding= utf-8-sig:防止读取数据是出现非法字符>> 直接写utf-8,打印结果为 ['\ufeffusername\t', 'password']utf-8与utf-8-sig两种编码格式的区别:>>UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrder Mark”)。>>但是UTF-8 with BOM即utf-8-sig需要提供BOM。:param csv_file::param line::return:'''logging.info('=======et_csv_data=========')with open(csv_file,'r',encoding='utf-8-sig') as file:reader = csv.reader(file)#循环,索引从1开始for index,row in enumerate(reader,1):if index ==line:return rowif __name__ == '__main__':driver  = appium_desired()com = Common(driver)# com.swipeLeft()# com.getScreenShot('startAPP')csv_file = '../data/account.csv'#获取文件,并读取第一行数据data = com.get_csv_data(csv_file,1)print(data)print(data[1])

这里的account.csv 文件内容,是这样的

嗯,封装好,以后就直接调用方法,省时省力~~

Appium自动化框架从0到1之 公共方法的封装相关推荐

  1. appium自动化测试框架系列之基类以及公共类的封装

    接上一篇完成配置文件的设置后,我们开始正式开始编写python自动化测试脚本: 基于对设计框架时的分析,主要的实现的功能时对移动端中对应场景通过代码自动完成指定的操作,首页以实现基本的操作的类作为基类 ...

  2. Appium自动化框架从0到1之 测试用例封装

    我们直接封装测试用例的 setU 和teardown 模块 以后每次执行测试用例,直接调用该方法就可以了 myunit.py # -*- coding: utf-8 -*- ""& ...

  3. Selenium4.0+Python手撸自动化框架系列之 Web元素等待方式介绍 与 封装

    目录 前言 三种等待 一.线程等待 二.隐性等待 三.显性等待 封装 一.参数设计 二.函数名设计 三.封装代码设计 前言 web自动化测试,常常因为硬件配制,浏览器,网速等因素导致网页加载速度过慢, ...

  4. Appium自动化框架简介

    Appium Appium简介 Appium结构流程 Appium工作原理 Appium架构分析 Appium简介 Appium遵循的原则: 1.使用自动化来测试一个app,但是不需要重新编译它 2. ...

  5. Windows自动化框架实现(0) - 知识准备

    (一)Windows GUI自动化测试常用工具 Tool Comment 主要封装框架 AutoIT Win32应用 Windows API Pywinauto 一个python库,PC端自动化工具 ...

  6. Appium移动自动化框架

    引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...

  7. pythonappium自动化框架_Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)...

    简介 前边一直在分享testng的相关文章,看了点赞量和阅读数不是很高,宏哥猜测估计是大家确实是用不到或者不喜欢吧!不过宏哥经过一段时间的准备,appium的自动化测试框架完善的差不多了,那么接下来宏 ...

  8. appium自动化,appium元素定位

    appium自动化,appium元素定位 Appium是一款综合性软件,可让您在本地.移动或混合应用程序上执行复杂的测试. 简而言之,appium自动化框架允许您在不需要 SDK 或在每次测试会话后重 ...

  9. python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

最新文章

  1. Maven最佳实践:划分模块
  2. Hybrid框架UI重构之路:一、师其长技以自强
  3. 适用所有服务器的全站301重定向跳转教程
  4. 电竞+区块链,玩家的4大入局方式
  5. 【英语学习】【Level 08】U04 What I love L3 A good buy
  6. 一把“万能钥匙”就能开所有共享单车,撬走3亿元,开发者已被抓捕...
  7. vue ---- 生命周期
  8. 博弈论中的简单合作博弈 C#实现
  9. 移动端Web组件-Dialog对话框
  10. Java项目——云R记
  11. 哈登独得40分保罗复出 火箭主场103:98复仇魔术
  12. HttpClient Utils工具类的编写方法分享
  13. js 分行显示已选爱好
  14. 韦东山嵌入式第一期学习笔记DAY_3——7_1_裸机开发步骤简介
  15. HM-GNN:基于分子-基序异构图神经网络的分子表示学习模型
  16. Google Alphabet
  17. html中怎么制作选择头像,网页中的个人头像选择框(转)
  18. CNN,GAN,AE和VAE概述
  19. python 列表嵌套字典 添加修改删除_python 列表、字典、元组等增删改查
  20. 曝光了,清华计算机系最牛的课!

热门文章

  1. VI编辑器之多文件多屏操作
  2. Java中的23个设计模式 【结构型模式】 中的 【享元模式】
  3. html跑马灯 ie6,jQuery实现 “老汉推车”走马灯效果
  4. WIFI营销读书笔记之一:Wifi营销基础知识
  5. nginx 和dns配置
  6. 多云和混合云场景下的 API 管理:挑战与选择
  7. awk sed精选命令应用集_2018_lcf
  8. testlink界面优化_TestLink 1.9.16 - 修改CKEditor配置
  9. 时隔半年依旧是旗舰,这款骁龙820手机直降600再次开售
  10. Java岗面试必问!mysql视频教程百度云