Python +appium baseview
封装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的更多相关文章
- Python + Appium 环境搭建
---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1 安装前准备工作 搭建环境所需要的安装文件已经下载好 ...
- Python appium搭建app自动化测试环境
appium做app自动化测试,环境搭建是比较麻烦的. 也是很多初学者在学习app自动化之时,花很多时间都难跨越的坎. 但没有成功的环境,就没有办法继续后续的使用. 在app自动化测试当中,我们主要是 ...
- python appium笔记(二):元素定位
#这里的示例是用android来说明的,xpath应该是通用的,resource-id不太清楚,没配过IOS的环境 #环境配置和一些参数的意思不清楚可以看我上一篇python appium笔记(一) ...
- 初次尝试使用jenkins+python+appium构建自动化测试
初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...
- Python Appium 滑动、点击等操作
Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 ...
- Python Appium 元素定位方法简单介绍
Python Appium 元素定位 常用的八种定位方法(与selenium通用) # id定位 driver.find_element_by_id() # name定位 driver.find_ ...
- Python+Appium环境搭建
1.python环境搭建,这里就不做过多介绍 2.安装 node.js 2.1.官网下载node.js:https://nodejs.org/en/download/ 2.2.获取到安装文件后,直接双 ...
- (干货分享)mac python+appium环境搭建
因为mac本自带python2.x(不建议卸载,因为本本本身有很多依赖与此),所以装python3的过程极其坎坷,勉强装好后也总是各种报错.这次装appium环境,直接把原来的python3卸了,用h ...
- Python +appium 封装desired_caps模块
使用python+appium做android的自动化测试时,首先需要启动appium服务,然后连接上手机,配置如下: desired_caps = {"platformName" ...
随机推荐
- Promise.resolve解析
总结自:https://blog.csdn.net/lq15310444798/article/details/81275278 Promise.resolve返回一个Promise实例 参数分4种情 ...
- 使用清华源进行pip install
pypi 镜像使用帮助 pypi 镜像每 5 分钟同步一次. 临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-pac ...
- 使用HOSTNAMECTL配置主机名
hostnamectl工具是用来管理给定主机中. 查看所有主机名 请运行下面的命令查看所有当前主机名: 〜] $ hostnamectl status 如果未指定任何选项,默认则使用status选项对 ...
- 218. The Skyline Problem (LeetCode)
天际线问题,参考自: 百草园 天际线为当前线段的最高高度,所以用最大堆处理,当遍历到线段右端点时需要删除该线段的高度,priority_queue不提供删除的操作,要用unordered_map来标记 ...
- easyui中formatter的用法
easyui中formatter的用法 当我们使用easyui需要对某一列进行格式化处理value数据时,可以使用formatter进行格式化 这里以一个商品表举例,商品表中有一个商品类型的字段,数据 ...
- PHP中YUM的理解
1. YUM是什么? 1)全称:Yellow dog Updater ,Modified. 2)百度简述:是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包 ...
- 74HC573锁存器应用(附英文手册)
锁存器(LATCH)概念 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态. 锁存,就是把信号暂存以维持某种电平状态. 锁存器作用: 缓存 完成高速的控 ...
- Linux node.js安装
1.下载地址 下载node 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 2.下载下来的tar文件上传到服务 ...
- linux redis 安装和密码设置
1.下载redis wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压 tar xzvf redis-4.0.8.tar.gz ...
- docker redis4.0集群搭建
一.前言 redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地 ...