unittest框架实战(三)
来源:互联网 发布:宇宙几维 知乎 编辑:程序博客网 时间:2024/05/21 14:41
#coding=utf-8
import os, time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from Driver import My_driver
from selenium.webdriver.support.select import Select
class My_page(object):
'''页面基本的元素操作
包括:点击, 输入, iframe, wait
'''
def __init__(self, driver):
self.driver = driver
def Click(self, *loc):
# 点击元素
return self._Wait_Run(self._click, *loc)
def Input(self, text, *loc):
# 输入text
return self._Wait_Run(self._input, text, *loc)
def Select_List(self, text, *loc):
# 根据text去选择下拉框内容, text为下拉框里的值
return self._Wait_Run(self._select_list, text, *loc)
def Element(self, *loc):
# 定位单个元素
return self._Wait_Run(self._element, *loc)
def Elements(self, *loc):
# 定位多个元素
return self._Wait_Run(self._elements, *loc)
def Iframe(self, *loc):
# 进入iframe
return self._Wait_Run(self._iframe, *loc)
def DisIframe(self):
# 退出iframe
return self._Wait_Run(self._disiframe)
def Switch_alert(self):
'''获取弹出框内容'''
return self._Wait_Run(self._switch_alert)
def Exit_alert(self):
'''释放弹出框'''
return slef._Wait_Run(self._exit_alert)
def _click(self, *loc):
# 点击元素
return self.driver.find_element(*loc).click()
def _input(self, text, *loc):
# 输入字符串
return self.driver.find_element(*loc).send_keys(text)
def _select_list(self, text, *loc):
# 下拉框
return Select(self.driver.find_element(*loc)).select_by_visible_text(text)
def _element(self, *loc):
# 定位单个元素
return self.driver.find_element(*loc)
def _elements(self, *loc):
# 定位多个元素, 以list的方式返回
return self.driver.find_elements(*loc)
def _iframe(self, *loc):
# 进入iframe
return self.driver.switch_to.frame(self._element(*loc))
def _disiframe(self):
# 释放Iframe
return self.driver.switch_to_default_content()
def close_process(self, process_name='chromedriver.exe'):
'''
--------------------
|杀死进程,主要用来杀死chromedriver.exe的进程
|浏览器每一次的调用都会启用一次Chromedriver
||根据名称去杀死进程
'''
if process_name[-4:].lower() != '.exe':
process_name += '.exe'
os.system('taskkill /f /im ' + process_name)
def _Run(self, name, *args):
'''|运行方法
|函数当做参数去传递
'''
return name(*args)
def _Wait_Run(self, name, *args):
'''
||由时间来控制函数的运行
|操作完成后直接return,结束函数
|超过时间限制的时候跳出循环,return 结束函数
'''
endtime = time.time() + float(5)
while True:
try:
return self._Run(name, *args)
except BaseException as e:
print 'Your Fail: %s' % e
remaining = endtime - time.time()
if remaining <= 0:
raise
time.sleep(min(remaining, 0.01))
errors_text = '现在的时间 %s, 你剩余的运行时间 %s' %(time.strftime('%Y-%m-%d %H:%M:%S'), remaining)
print errors_text
def _switch_alert(self):
'''获取弹出框内容'''
return self.driver.switch_to.alert.text
def _exit_alert(self):
'''释放弹出框'''
return self.driver.dismiss()
import os, time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from Driver import My_driver
from selenium.webdriver.support.select import Select
class My_page(object):
'''页面基本的元素操作
包括:点击, 输入, iframe, wait
'''
def __init__(self, driver):
self.driver = driver
def Click(self, *loc):
# 点击元素
return self._Wait_Run(self._click, *loc)
def Input(self, text, *loc):
# 输入text
return self._Wait_Run(self._input, text, *loc)
def Select_List(self, text, *loc):
# 根据text去选择下拉框内容, text为下拉框里的值
return self._Wait_Run(self._select_list, text, *loc)
def Element(self, *loc):
# 定位单个元素
return self._Wait_Run(self._element, *loc)
def Elements(self, *loc):
# 定位多个元素
return self._Wait_Run(self._elements, *loc)
def Iframe(self, *loc):
# 进入iframe
return self._Wait_Run(self._iframe, *loc)
def DisIframe(self):
# 退出iframe
return self._Wait_Run(self._disiframe)
def Switch_alert(self):
'''获取弹出框内容'''
return self._Wait_Run(self._switch_alert)
def Exit_alert(self):
'''释放弹出框'''
return slef._Wait_Run(self._exit_alert)
def _click(self, *loc):
# 点击元素
return self.driver.find_element(*loc).click()
def _input(self, text, *loc):
# 输入字符串
return self.driver.find_element(*loc).send_keys(text)
def _select_list(self, text, *loc):
# 下拉框
return Select(self.driver.find_element(*loc)).select_by_visible_text(text)
def _element(self, *loc):
# 定位单个元素
return self.driver.find_element(*loc)
def _elements(self, *loc):
# 定位多个元素, 以list的方式返回
return self.driver.find_elements(*loc)
def _iframe(self, *loc):
# 进入iframe
return self.driver.switch_to.frame(self._element(*loc))
def _disiframe(self):
# 释放Iframe
return self.driver.switch_to_default_content()
def close_process(self, process_name='chromedriver.exe'):
'''
--------------------
|杀死进程,主要用来杀死chromedriver.exe的进程
|浏览器每一次的调用都会启用一次Chromedriver
||根据名称去杀死进程
'''
if process_name[-4:].lower() != '.exe':
process_name += '.exe'
os.system('taskkill /f /im ' + process_name)
def _Run(self, name, *args):
'''|运行方法
|函数当做参数去传递
'''
return name(*args)
def _Wait_Run(self, name, *args):
'''
||由时间来控制函数的运行
|操作完成后直接return,结束函数
|超过时间限制的时候跳出循环,return 结束函数
'''
endtime = time.time() + float(5)
while True:
try:
return self._Run(name, *args)
except BaseException as e:
print 'Your Fail: %s' % e
remaining = endtime - time.time()
if remaining <= 0:
raise
time.sleep(min(remaining, 0.01))
errors_text = '现在的时间 %s, 你剩余的运行时间 %s' %(time.strftime('%Y-%m-%d %H:%M:%S'), remaining)
print errors_text
def _switch_alert(self):
'''获取弹出框内容'''
return self.driver.switch_to.alert.text
def _exit_alert(self):
'''释放弹出框'''
return self.driver.dismiss()
_Wait_Run()该方法之前有说过就不多说了
close_process()这个方法是用来杀死driver驱动的方法,可以放在tearDown()方法中,每次执行完成一个用例就去杀死一次,要不然driver.exe在windwos上会越来越多,造成电脑卡死
_iframe()用来封装driver.switch_to.frame()方法,该方法的定位方式比较少,可以通过获取driver.find_element()定位去定位,可以使用多种定位方式
阅读全文
0 0
- unittest框架实战(三)
- unittest框架实战(一)
- unittest框架实战(二)
- unittest框架实战(四)
- unittest框架实战(六)
- unittest框架实战(七)
- unittest框架实战(八)
- unittest框架实战(九)
- 引用单元测试模块unittest框架(三)
- unittest 中的 mock框架
- python unittest 测试框架
- Python单元测试框架unittest
- Python单元测试框架-unittest
- unittest单元测试框架总结
- Python 之unittest框架
- python 测试框架 unittest
- Unittest单元测试框架总结
- python unitTest使用框架
- vue之图标字体制作
- linux下硬盘性能(网络盘)测试工具fio使用
- spring依赖注入引发的一点思考
- 写点什么?
- Element之获取子节点方法
- unittest框架实战(三)
- java gc机制算法详解
- Git使用手册:git push 推送提交本地仓库代码文件到远程仓库
- 深度学习: pooling (池化 / 降采样)
- 性能优化工具1——android studio monitors 之 start allocation tracking
- canvas——rotate
- 如何优雅的选择字体(font-family)
- 本周资讯top3 【越狱苹果】独家探寻阿里安全潘多拉实验室,完美越狱苹果iOS11.2.1 知道如何从攻击的视角去发现漏洞,才能建立更安全的体系,促进了整个生态的良性发展。以阿里安全潘多拉实验室为例
- hibernate注解