#!/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 浏览器封装相关推荐

  1. python工具类-sql操作封装

    #!/usr/bin/python # coding=utf-8# 链接mysql数据库 # 需要安装mysqlclientimport MySQLdbclass SqlUtil():conn = N ...

  2. Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释

    Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释 import reclass RegexUtils:'''正则表达式工具类'''def __init__(self ...

  3. springboot上传下载文件(4)--上传下载工具类(已封装)

    因为在做毕设,发现之前的搭建ftp文件服务器,通过ftp协议无法操作虚拟机临时文件,又因为ftp文件服务器搭建的比较麻烦:而 hadoop的HDFS虽然可以实现,但我这里用不到那么复杂的:所以我封装了 ...

  4. Android建造者模式初探(Toast工具类的进一步封装)

    前提 在写这篇文章前一直在思考,我对建造者模式有了一个大体的理解.但是,有没有可能会造成过度封装呢,这里还需要各位看官老爷来评判,如果想看之前的对Toast工具了的封装可以移步Android 自定义T ...

  5. java 正则 工具类_正则表达式工具类,正则表达式封装,Java正则表达式

    正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...

  6. python 提取视频中的音频 | Python工具类

    目录 前言 环境依赖 工具代码 总结 前言 利用Python的ffmpy库提取视频中的音频.本文提供工具类代码. 环境依赖 需要安装ffmpy,安装指令: pip install ffmpy -i h ...

  7. 腾讯云cos本地和云端同步python工具类

    cos同步工具类 # -*- coding=utf-8 from qcloud_cos import CosConfig from qcloud_cos import CosS3Client from ...

  8. Python 将图片或者视频模糊化(附代码) | Python工具类

    目录 前言 环境依赖 代码 总结 前言 本文主要分享一个可以将图片或者视频模糊化的工具代码.技术路线主要是使用ffmpeg滤镜. 环境依赖 ffmpeg环境部署,直接参考我的另一篇文章:windows ...

  9. python 下载大文件,断点续传 | Python工具类

    目录 前言 依赖 工具代码 总结 前言 实用python进行大文件下载的时候,一旦出现网络波动问题,导致文件下载到一半.如果将下载不完全的文件删掉,那么又需要从头开始,如果连续网络波动,是不是要头秃了 ...

最新文章

  1. 打发无聊的办法(2005-5-31)
  2. hadoop balancer
  3. muduo之CountDownLatch.cc
  4. 对称密码获取(OJ)
  5. C# 委托(Delegate) 事件(Event)应用详解
  6. ZOJ 3827 Information Entropy(数学题 牡丹江现场赛)
  7. 我的博客今天6岁298天了,我领取了元老博主徽章
  8. Gruntjs: grunt-contrib-jst
  9. python打包库_Python 打包自己的库到 PYPI (可pip安装)
  10. nginx文件类型错误解析漏洞
  11. Oracle11g安装完成后给用户解锁
  12. 学霸的迷宫-蓝桥杯算法提高-广搜 bfs 经典问题
  13. tensorflow在文本处理中的使用——Word2Vec预测
  14. 【网络流24题】分配问题 最小最大费用最大流
  15. 三星手机android版本怎么升级,如何在三星Galaxy手机上更新软件
  16. Freebase Data Dump 结构初探(二)——浅析元信息
  17. 网吧服务器多长时间维护,网吧服务器常用设置维护工具
  18. 计算机专业四次评估,一直强才是真的强,四次评估结果看,哪些大学才是计算机专业强校...
  19. 【历史上的今天】11 月 19 日:Microsoft Office 首次发布;谷歌开源 Chrome OS;Twitter 创始人出生
  20. 褚老与褚橙,探秘情感消费市场的内核

热门文章

  1. 大数据——Flume安装配置和使用
  2. matlab 图像分割_交通标志牌检测--限速数字框选--图像处理 matlab
  3. GPS ublox配置过程
  4. 《软件测试方法和技术》-读书笔记(三)
  5. 2020年长沙四大名校高考成绩统计
  6. 手工注入完成SQL注入漏洞
  7. C语言做线性分析,C语言版的线性回归分析函数
  8. Pipeline流水线-通过Jenkinsfile构建任务
  9. Bert—SST-2
  10. C#交错数组和参数数组