我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python单例模式之seleniumdriver实现单例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python单例模式之seleniumdriver实现单例

一、使用装饰器实现单例

def Singleton(cls):
    _instance = {}
 
    def _singleton(*args, **kargs):
        if cls not in _instance:
            _instance[cls] = cls(*args, **kargs)
        return _instance[cls]
 
    return _singleton
 
 
@Singleton
class A(object):
    a = 1
 
    def __init__(self, x=0):
        self.x = x
 
 
a1 = A(2)
a2 = A(3)

二、web自动化driver实现单例模式

2.1 编写单例模式的装饰器

singleton.py

#coding:utf-8
#单例模式函数,用来修饰类
def singleton(cls,*args,**kw):
    instances = {}
    def _singleton():
        if cls not in instances:
            instances[cls] = cls(*args,**kw)
        return instances[cls]
    return _singleton

2.2 driver 使用装饰器,实现单例模式

GetSeleniumDriver.py
# -*- coding:utf-8 -*-
from selenium import webdriver
from singleton import singleton
@singleton
class GetSeleniumDriver(object):
    def __init__(self):
        self.driver = webdriver.Chrome()

2.3 获取driver的实例,就是单例了

class My_task(RES):
    def __init__(self):
        self.driver=GetSeleniumDriver().driver
 
    def Making_task_Button(self):
        Making_task_Button=self.driver.find_element_by_xpath(RES.Making_task_Button_xpth)
        return Making_task_Button
 
    def Audit_task_Button(self):
        Audit_task_Button=self.driver.find_element_by_xpath(RES.Audit_task_Button_xpth)
        return Audit_task_Button

三、在自动化项目中具体的应用

3.1项目结构

四、工具层 Utils

4.1singleton.py 是单例装饰器

#coding:utf-8
#单例模式函数,用来修饰类
def singleton(cls,*args,**kw):
    instances = {}
    def _singleton():
        if cls not in instances:
            instances[cls] = cls(*args,**kw)
        return instances[cls]
    return _singleton

4.2 GetSeleniumDriver.py  driver实现单例

# -*- coding:utf-8 -*-
from selenium import webdriver
from Utils.singleton import singleton
@singleton
class GetSeleniumDriver(object):
    def __init__(self):
        self.driver = webdriver.Chrome()

五、页面元素层 TsetSharelab

My_task.py

# -*- coding:utf-8 -*-
 
from Utils.GetSeleniumDriver import GetSeleniumDriver
 
 
class My_task():
    def __init__(self):
        self.driver=GetSeleniumDriver().driver
 
    def Making_task_Button(self):
        Making_task_Button=self.driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/a[1]')
        return Making_task_Button
 
    def Audit_task_Button(self):
        Audit_task_Button=self.driver.find_element_by_xpath('/html/body/div[3]/div[1]/div/a[1]')
        return Audit_task_Button

六、流程层

把一步一步的动作,封装成一个业务流程

BookCity_page_process.py

# -*- coding:utf-8 -*-
from Utils.GetSeleniumDriver import GetSeleniumDriver
 
import time
 
class BookCity_page_process(object):
    def __init__(self):
        self.driver=GetSeleniumDriver().driver
 
    def WeiBo_Loain_To_Share(self):  
        time.sleep(3)
        self.driver.find_elements_by_class_name('W_input').pop(0).send_keys(123)
        time.sleep(1)
        self.driver.find_elements_by_class_name('W_input').pop(1).send_keys(456)

七、case层 ,把业务逻辑组成一条条用例

test_case.py

#coding:utf-8
from time import sleep
from Utils.GetSeleniumDriver import GetSeleniumDriver
 
class CreativeBooks(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self.driver = GetSeleniumDriver().driver
        sleep(2)
    @classmethod
    def tearDownClass(self):
        pass
 
    def setUp(self):
        self.driver = GetSeleniumDriver().driver

到此这篇关于python单例模式之selenium driver实现单例的文章就介绍到这了,更多相关python selenium driver实现单例内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python单例模式之seleniumdriver实现单例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python实现单例模式

1.什么是单例?确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。那么单例模式有什么用途呢?举个常见的单例模式例子,我们平时使用的电脑上都有一个回收站,在整个操作系统中,回收站
2023-01-31

Android设计模式之单例模式实例

这篇文章主要介绍了Android设计模式之单例模式实例,单例模式是运用最广泛的设计模式之一,在应用这个模式时,单例模式的类必须保证只有一个实例存在
2023-05-16

python设计模式之单例模式

单例模式是一种创建型设计模式,它确保一个类有且只有一个特定类型的对象,并提供全局访问点。其意图为:确保类有且只有一个对象被创建为对象提供一个访问点,使程序可以全局访问该对象控制共享资源的并行访问简单理解:单例即为单个实例,也就是每次实例化创
2023-01-30

Python单例模式实例详解

本文实例讲述了Python单例模式。分享给大家供大家参考,具体如下: 单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。 实现某个类只有一个实例的途径: 1,让一个全局变量使得一个对象被访问,但是他不能防止外部实例化多个对象。
2022-06-04

python单例模式

正在写python单例模式的一些东西,查到资料,记录一下。原文地址:http://hi.baidu.com/tianfeng1015/blog/item/f0373dd0fbb8bbcb50da4bca.html我们可以使用 __new__
2023-01-31

python 单例模式

单例模式多次实例化的结果指向同一个实例 单例模式实现方式方式一: 1 import settings 2 3 class MySQL: 4 __instance = None 5 6 def __init__(self,
2023-01-30

python3实现单例模式

单例模式指确保某个类在整个系统中只存在一个实例的一种设计模式使用单例模式的好处:1、每个实例都会占用一定的内存资源,且初始化实例时会影响运行性能,所以当整个系统只需一个实例时,使用单例模式不仅可减少资源占用,而且因为只初始化一次,还可以加快
2023-01-31

异步单例模式之不一样的单例模式

创建实例需要一定的时间,创建期间,交出执行权,创建完毕后,拿回执行权,返回结果。

java设计模式之怎么实现单例模式

这篇文章主要介绍了java设计模式之怎么实现单例模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java设计模式之怎么实现单例模式文章都会有所收获,下面我们一起来看看吧。单元素的枚举类型经常成为实现 Sing
2023-07-04

5种Python单例模式的实现方式

本文为大家分享了Python创建单例模式的5种常用方法,供大家参考,具体内容如下 所谓单例,是指一个类的实例从始至终只能被创建一次。 方法1: 如果想使得某个类从始至终最多只有一个实例,使用__new__方法会很简单。Python中类是通过
2022-06-04

在Python中如何实现单例模式

本篇内容主要讲解“在Python中如何实现单例模式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Python中如何实现单例模式”吧!方法一:使用装饰器实现单例模式。from functools
2023-06-01

python的单例模式

python单例模式所谓单例,就是保证一个类仅有一个实例。所有引用(实例、对象)拥有相同的状态(属性)和行为(方法);同一个类的所有实例天然拥有相同的行为(方法);只需要保证同一个类的所有实例具有相同的状态(属性)即可;所有实例共享属性的最
2023-01-31

Python实现单例模式的方式有哪些

这篇“Python实现单例模式的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python实现单例模式的方式有哪些
2023-06-30

Python实现单例模式的方式是什么

本篇内容介绍了“Python实现单例模式的方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!单例模式(Singleton Patter
2023-07-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录