开发者

python单例模式之selenium driver实现单例

开发者 https://www.devze.com 2022-12-12 09:56 出处:网络 作者: 傲娇的喵酱
目录一、使用装饰器实现单例二、web自动化driver实现单例模式2.1编写单例模式的装饰器2.2driver使用装饰器,实现单例模式2.3获取driver的实例,就是单例了三编程客栈、在自动化项目中具体的应用3.1项目结构四、工具层
目录
  • 一、使用装饰器实现单例
  • 二、web自动化driver实现单例模式
    • 2.1编写单例模式的装饰器
    • 2.2driver使用装饰器,实现单例模式
    • 2.3获取driver的实例,就是单例了
  • 编程客栈、在自动化项目中具体的应用
    • 3.1项目结构
  • 四、工具层Utils
    • 4.1singleton.py是单例装饰器
    • 4.2GetSeleniumDriver.py driver实现单例
  • 五、页面元素层TsetSharelab
    • 六、流程层
      • 七、case层,把业务逻辑组成一条条用例

        一、使用装饰器实现单例

        def Singleton(cls):
          _instance = {}
        
          def _singleton(*args, **kargs):
            if cls not in _instance:
              _instance[cls] = cls(*args, **kJUQfGPtPqNargs)
            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 singletowww.cppcns.comn(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项目结构

        python单例模式之selenium driver实现单例

        四、工具层 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()

        五、页面元素层 TsetSharhttp://www.cppcns.comelab

        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_Buthttp://www.cppcns.comton

        六、流程层

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

        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实现单例内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号