封装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. 浅谈 Docker 安全合规建设

    通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker 安全性不足,对 Docker 导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以 ...

  2. 安卓学习日记第二天——Fragment

    一.基本概念 Fragment是依赖于Activity的,不能独立存在的. 一个Activity里可以有多个Fragment. 一个Fragment可以被多个Activity重用. Fragment有 ...

  3. 【LeetCode】 #7:反转整数 C语言

    目录 题目 思路 初步想法 进一步想法 总结 最近打算练习写代码的能力,所以从简单题开始做. 大部分还是用C语言来解决. @(解法) 题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...

  4. 介绍一款好用的命令行工具Cmder

    一.Cmder的介绍: 在大多数情况下,我们都想复制命令行窗口中的命令行,但是cmd复制粘贴大家都懂得:有没有更好的工具替代呢? 答案是肯定的,今天我将为大家介绍一款工具--Cmder. Cmder可 ...

  5. Spring Boot Web 自定义返回值(通用)

    在项目下新建common.entity包,包中包含两个文件Result数据类,ResultCode接口文件 Result.class @Data @NoArgsConstructor public c ...

  6. Docker 封装java镜像

    一.概述 目前java采用的框架是Spring,服务器直接通过 java -jar xxx.jar 就可以启动服务了. 二.jdk镜像 在docker中跑java应用,需要有jdk环境支持才行. 获取 ...

  7. linux 查询某个时间段的日志

    目前因发生了异常大概记得发生的时间段,想查看这个时间段的日志 如我们的日志格式如下 1:09:59.946 [http-nio-12129-exec-10] INFO ntroller start = ...

  8. timeout超时时长优化和hystrix dashboard可视化分布式系统

    在生产环境中部署一个短路器,一开始需要将一些关键配置设置的大一些,比如timeout超时时长,线程池大小,或信号量容量 然后逐渐优化这些配置,直到在一个生产系统中运作良好 (1)一开始先不要设置tim ...

  9. c# sharepoint client object model 客户端如何创建中英文站点

    c# sharepoint client object model 客户端如何创建中英文站点 ClientContext ClientValidate = tools.GetContext(Onlin ...

  10. 1014 福尔摩斯的约会(C#)

    一.题目内容: 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就 ...