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" ...
随机推荐
- Java 面向接口的编程
面向接口的编程 什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能 ...
- HTML和CSS个人笔记
目录 定位 文字显示在图片上 ul的li元素的小圆点换成图片 关于Bootstrap的响应式 不要在container之外使用row 不要使用padding的时候固定高度 不要使用<hr p标签 ...
- java 正则 replace 忽略大小写
String description = model.getDescription(); if (!"".equals(description)) { //replace(/\&l ...
- Intellij IDEA debug断点调试技巧与总结详解篇
1. Rerun . 这个就是结束debug模式,直接以run的方式重新跑某个程序.2. 直接跑完. 到下一个断点停下. 没有就直接跑完程序.3. 停止项目或者程序.要是自己的main呢. 点一下就停 ...
- php mysql的储存过程 实现批量更新
UPDATE newhouse_clicks SET clicks = CASE id WHEN 1 THEN 1000 WHEN 2 THEN 2000 WHEN 3 THEN 3000 END W ...
- Python知识之 方法与函数、偏函数、轮询和长轮询、流量削峰、乐观锁与悲观锁
方法与函数 函数需要手动传参self.cls,方法自动传,比如对象方法自动传self,类方法自动传cls,而函数相对而言需要手动传,比如静态绑定的函数,self是需要手动传值得,比如我们平常使用的函数 ...
- Python知识点总结篇(五)
软件目录结构规范 目标: 提高可读性: 提高可维护性: 常见结构 Demo/ |-- bin/ #存放项目的一些可执行文件 | |-- demo #可执行程序,启动demo调main.py | |-- ...
- 【实战经验】--Xilinx--Chipscope使用
1)在工程右键点击New Source 新建Chioscope,在File name 填写名称: 2)新建完成后,工程里会出现你建立的chipscope文件(如下图chip_ddr3.cdc)双击打开 ...
- Python 基础 格式化输出
Python 基础 格式化输出 现在需要我们录入我们身边好友的信息,格式如下: ------------ info of Alex Li ---------- Name : Alex Li Age : ...
- Matlab 信号与系统课设 - BiRadio仿真电台
BiRadio Matlab 信号与系统课设 - BiRadio仿真电台 Author : Benjamin142857 Date : 2018-12 Video : BiliBili Github ...