zoukankan      html  css  js  c++  java
  • selenium 单浏览器模式

    如果需要无限制的任意实例化,而不是把实例化后的对象传给另一个函数、方法处理。就需要控制单浏览器,不然每次实例化弹出来一个新浏览器,很占内存

    #coding=utf8
    from selenium.webdriver import  Chrome,Firefox
    import unittest
    class Browser():
        _browser_inst = {}
        def __init__(self,Klass = Firefox):
            if Klass in Browser._browser_inst :
                self.driver = Browser._browser_inst[Klass]
            else:
                self.driver = Klass()
                Browser._browser_inst[Klass] = self.driver
    
        def open(self,url):
            self.driver.get(url)
    
    
    class BaiduTest(unittest.TestCase):
        def test1(self):
            b1 = Browser(Chrome)
            b1.open('https://www.baidu.com')
    
    class SinaTest(unittest.TestCase):
        def test2(self):
            b2 = Browser(Firefox)
            b2.open('http://www.sina.com')
    
    class SohuTest(unittest.TestCase):
        def test3(self):
            b3 = Browser(Chrome)
            b3.open('https://www.sohu.com')
    
    
    if __name__ == '__main__':
       unittest.main()

    这样不管实例化多少次,保证最多只能弹出一个火狐和谷歌浏览器。

  • 相关阅读:
    做过的笔试题
    (转)32位机器中int的字长
    JS_void()
    JS_增加事件,移除事件,动态元素的增删事件研究
    JS_animate 站在别人的肩膀上
    JS_对象的方法
    JS_Class.extend
    JS_返回值
    JS_eventBind
    JS_应用对象的复制
  • 原文地址:https://www.cnblogs.com/ydf0509/p/8328885.html
Copyright © 2011-2022 走看看