python工具类-selenium 浏览器封装
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021-12-08 8:52
# @Author : herry
# @File : BrowserUtil.py
# @software: PyCharm
# @describe: BrowserUtil
"""说明:调用浏览器是需要下载相应的驱动,并放到python 目录下chrome:chromeDriver.exeFireFox:geckodriver.exe"""from selenium import webdriverfrom src.util.Logger import Loglog = Log().getlog()
browser = Nonedef Singleton(cls):_instance = {}def _singleton(*args, **kargs):if cls not in _instance:_instance[cls] = cls(*args, **kargs)return _instance[cls]return _singleton@Singleton
class Browser:"""单实例对象"""browser = Nonedef __init__(self, browser_type="chrome", isHeadLess=False, isMax=True):log.info("初始化浏览器")if self.browser == None:self.browser = initBrowser(browser_type=browser_type, isHeadLess=isHeadLess, isMax=isMax)def getBrowser(self):return self.browserdef __del__(self):try:print("!!!!!")self.browser.close()print("!2222")print("浏览器正常退出")except Exception as e:print("浏览器退出异常--》%s", e)passclass MBrowser:"""普通多实例对象"""browser = Nonedef __init__(self, browser_type="chrome", isHeadLess=False, isMax=True):log.info("初始化浏览器")if self.browser is None:self.browser = initBrowser(browser_type=browser_type, isHeadLess=isHeadLess, isMax=isMax)def getBrowser(self):return self.browserdef __del__(self):try:print("!!!!!")self.browser.close()print("!2222")print("浏览器正常退出")except Exception as e:print("浏览器退出异常--》%s", e)passdef chromeOption(isHeadLess=False):options = webdriver.ChromeOptions()if isHeadLess:options.add_argument("--headless")return optionsdef firefoxOptions(isHeadLess=False):options = webdriver.FirefoxOptions()if isHeadLess:options.add_argument("--headless")return optionsdef initBrowser(browser_type="chrome", isHeadLess=False, isMax=True):try:if browser_type == "chrome":options = chromeOption(isHeadLess)browser = webdriver.Chrome(options=options)elif browser_type == "FireFox":options = firefoxOptions(isHeadLess)browser = webdriver.Firefox(options=options)else:return "浏览器类型错误,请选择chrome或FireFox"if isMax:browser.maximize_window()except Exception as e:log.error("浏览器获取失败-->%s", e)return browser
-------------------------------------最后---------------------------------
更多软件测试相关内容请关注“软件测试道与术”公众号或扫描下方二维码
python工具类-selenium 浏览器封装相关推荐
- python工具类-sql操作封装
#!/usr/bin/python # coding=utf-8# 链接mysql数据库 # 需要安装mysqlclientimport MySQLdbclass SqlUtil():conn = N ...
- Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释
Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释 import reclass RegexUtils:'''正则表达式工具类'''def __init__(self ...
- springboot上传下载文件(4)--上传下载工具类(已封装)
因为在做毕设,发现之前的搭建ftp文件服务器,通过ftp协议无法操作虚拟机临时文件,又因为ftp文件服务器搭建的比较麻烦:而 hadoop的HDFS虽然可以实现,但我这里用不到那么复杂的:所以我封装了 ...
- Android建造者模式初探(Toast工具类的进一步封装)
前提 在写这篇文章前一直在思考,我对建造者模式有了一个大体的理解.但是,有没有可能会造成过度封装呢,这里还需要各位看官老爷来评判,如果想看之前的对Toast工具了的封装可以移步Android 自定义T ...
- java 正则 工具类_正则表达式工具类,正则表达式封装,Java正则表达式
正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...
- python 提取视频中的音频 | Python工具类
目录 前言 环境依赖 工具代码 总结 前言 利用Python的ffmpy库提取视频中的音频.本文提供工具类代码. 环境依赖 需要安装ffmpy,安装指令: pip install ffmpy -i h ...
- 腾讯云cos本地和云端同步python工具类
cos同步工具类 # -*- coding=utf-8 from qcloud_cos import CosConfig from qcloud_cos import CosS3Client from ...
- Python 将图片或者视频模糊化(附代码) | Python工具类
目录 前言 环境依赖 代码 总结 前言 本文主要分享一个可以将图片或者视频模糊化的工具代码.技术路线主要是使用ffmpeg滤镜. 环境依赖 ffmpeg环境部署,直接参考我的另一篇文章:windows ...
- python 下载大文件,断点续传 | Python工具类
目录 前言 依赖 工具代码 总结 前言 实用python进行大文件下载的时候,一旦出现网络波动问题,导致文件下载到一半.如果将下载不完全的文件删掉,那么又需要从头开始,如果连续网络波动,是不是要头秃了 ...
最新文章
- 打发无聊的办法(2005-5-31)
- hadoop balancer
- muduo之CountDownLatch.cc
- 对称密码获取(OJ)
- C# 委托(Delegate) 事件(Event)应用详解
- ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
- 我的博客今天6岁298天了,我领取了元老博主徽章
- Gruntjs: grunt-contrib-jst
- python打包库_Python 打包自己的库到 PYPI (可pip安装)
- nginx文件类型错误解析漏洞
- Oracle11g安装完成后给用户解锁
- 学霸的迷宫-蓝桥杯算法提高-广搜 bfs 经典问题
- tensorflow在文本处理中的使用——Word2Vec预测
- 【网络流24题】分配问题 最小最大费用最大流
- 三星手机android版本怎么升级,如何在三星Galaxy手机上更新软件
- Freebase Data Dump 结构初探(二)——浅析元信息
- 网吧服务器多长时间维护,网吧服务器常用设置维护工具
- 计算机专业四次评估,一直强才是真的强,四次评估结果看,哪些大学才是计算机专业强校...
- 【历史上的今天】11 月 19 日:Microsoft Office 首次发布;谷歌开源 Chrome OS;Twitter 创始人出生
- 褚老与褚橙,探秘情感消费市场的内核