封装python+appium 的baseview模块

from selenium.webdriver.support.ui import WebDriverWait
from time import sleep
import os
import time class BaseView(object):
def __init__(self, driver):
self.driver = driver def find_element(self, *loc): # 查找单个元素
try:
WebDriverWait(self.driver, 5).until(lambda driver: driver.find_element(*loc).is_displayed())
return self.driver.find_element(*loc)
except:
print("%s 页面中未找到%s 元素" % (self, loc)) def find_elements(self, *loc): # 查找元素组
return self.driver.find_elements(*loc) def clear_keys(self, loc): # 清空输入框
self.find_element(*loc).clear() def send_keys(self, loc, value): # 清空输入框,查找元素,输入值
self.clear_keys(loc)
self.find_element(*loc).send_keys(value) def click_button(self, loc): # 查找元素,点击
self.find_element(*loc).click() def click_buttons(self, loc, n): # 点击元素组中的一个
self.find_elements(*loc)[n].click() def get_window_size(self): # 获取屏幕尺寸
return self.driver.get_window_size() def swipe(self, start_x, start_y, end_x, end_y, duration): # 屏幕滑动
return self.driver.swipe(start_x, start_y, end_x, end_y, duration) def alert_accept(self): # 接受弹窗
sleep(2)
return self.driver.switch_to_alert().accept() def alert_text(self): # 获取弹窗文本
sleep(2)
return self.driver.switch_to_alert().text # 获取屏幕的宽高
def get_size(self):
size = self.get_window_size()
width = size['width']
height = size['height']
return width, height # 向左边滑动
def swipe_left(self):
# [100,200]
x1 = self.get_size()[0] / 10 * 9
y1 = self.get_size()[1] / 2
x = self.get_size()[0] / 10
self.swipe(x1, y1, x, y1, 2000) # 向右边滑动
def swipe_right(self):
# [100,200]
x1 = self.get_size()[0] / 10
y1 = self.get_size()[1] / 2
x = self.get_size()[0] / 10 * 9
self.swipe(x1, y1, x, y1, 2000) # 向上滑动
def swipe_up(self):
# [100,200]direction
x1 = self.get_size()[0] / 2
y1 = self.get_size()[1] / 10 * 9
y = self.get_size()[1] / 10
self.swipe(x1, y1, x1, y, 2000) # 向下滑动
def swipe_down(self):
# [100,200]
x1 = self.get_size()[0] / 2
y1 = self.get_size()[1] / 10
y = self.get_size()[1] / 10 * 9
self.swipe(x1, y1, x1, y, 2000) def get_screenshot(self, screenshot_name):
now = time.strftime("%Y-%m-%d %H-%M-%S ")
base_path = os.path.dirname(os.path.dirname(__file__))
file_path = base_path + "/report/screenshots/" + now + screenshot_name + ".png"
return self.driver.get_screenshot_as_file(file_path)

Python +appium baseview的更多相关文章

  1. Python + Appium 环境搭建

    ---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1    安装前准备工作 搭建环境所需要的安装文件已经下载好 ...

  2. Python appium搭建app自动化测试环境

    appium做app自动化测试,环境搭建是比较麻烦的. 也是很多初学者在学习app自动化之时,花很多时间都难跨越的坎. 但没有成功的环境,就没有办法继续后续的使用. 在app自动化测试当中,我们主要是 ...

  3. python appium笔记(二):元素定位

    #这里的示例是用android来说明的,xpath应该是通用的,resource-id不太清楚,没配过IOS的环境 #环境配置和一些参数的意思不清楚可以看我上一篇python appium笔记(一) ...

  4. 初次尝试使用jenkins+python+appium构建自动化测试

    初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...

  5. Python Appium 滑动、点击等操作

    Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 ...

  6. Python Appium 元素定位方法简单介绍

    Python  Appium  元素定位 常用的八种定位方法(与selenium通用) # id定位 driver.find_element_by_id() # name定位 driver.find_ ...

  7. Python+Appium环境搭建

    1.python环境搭建,这里就不做过多介绍 2.安装 node.js 2.1.官网下载node.js:https://nodejs.org/en/download/ 2.2.获取到安装文件后,直接双 ...

  8. (干货分享)mac python+appium环境搭建

    因为mac本自带python2.x(不建议卸载,因为本本本身有很多依赖与此),所以装python3的过程极其坎坷,勉强装好后也总是各种报错.这次装appium环境,直接把原来的python3卸了,用h ...

  9. Python +appium 封装desired_caps模块

    使用python+appium做android的自动化测试时,首先需要启动appium服务,然后连接上手机,配置如下: desired_caps = {"platformName" ...

随机推荐

  1. HTML和CSS个人笔记

    目录 定位 文字显示在图片上 ul的li元素的小圆点换成图片 关于Bootstrap的响应式 不要在container之外使用row 不要使用padding的时候固定高度 不要使用<hr p标签 ...

  2. DL Practice:Cifar 10分类

    Step 1:数据加载和处理 一般使用深度学习框架会经过下面几个流程: 模型定义(包括损失函数的选择)——>数据处理和加载——>训练(可能包括训练过程可视化)——>测试 所以自己写代 ...

  3. Grammar01 语法七要素之一_词类

    1 词类 1.1 词类表格 实词 名词 -> n. -> noun -> 给所有人和物命名的词. 动词 -> v. (vt. vi.) -> verb ( transit ...

  4. SonarQube - 安装与运行SonarQube

    1 - 下载SonarQube SonarQube有多个版本,其中CE(Community Edition)版本免费开源,其余的开发者版本.企业版本和数据中心版本都是收费版本. 官网下载:https: ...

  5. &和&&的区别?

    &运算符有两种用法:(1)按位与:(2)逻辑与.&&运算符是短路与运算.逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是tr ...

  6. 如何录制高清GIF格式的图片

    如何录制高清GIF格式的图片 工具:傲软GIF 下载地址:https://www.apowersoft.cn/gif 特点:质量高,能够一帧一帧的修改 使用简单.就不说了.自行尝试.这里只是提供一个制 ...

  7. sk-learn 选择正确的估算器

    选择正确的估算器 解决机器学习问题最困难的部分通常是为工作找到正确的估算器. 不同的估计器更适合于不同类型的数据和不同的问题. 下面的流程图旨在为用户提供一些关于如何处理有关哪些估算器尝试数据的问题的 ...

  8. NOIP模拟day1-T1(完全背包)

    题目 Maxtir 最近买了一个背包. Maxtir 有一个容量为 m 的背包.Sao 有 n 种物品,第 i 种物品的体 积为 ai ,价值为 b i .Sao 的每种物品都有无限多件,Maxtir ...

  9. checkbox之全选和反选

    先导入jquery组件 <input type="checkbox" id="checkall">全选<input type="ch ...

  10. Partition5:Partiton Scheme是否指定Next Used?

    在SQL Server中,为Partition Scheme多次指定Next Used,不会出错,最后一次指定的FileGroup是Partition Scheme的Next Used,建议,在执行P ...