selenium webdriver单例模式

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

# _*_ encoding:utf-8 _*_
from selenium import webdriver

# 饿汉式单例模式在类加载时就初始化实例,这种方式简单且线程安全,但可能会占用一些资源。
class WD:
    ###===方式1
    # # 创建option对象
    # _options = webdriver.ChromeOptions()
    # # 添加detach为True,可以防止打开浏览器后自动关闭
    # _options.add_experimental_option("detach", True)
    # # 在类加载时初始化 WebDriver 实例, 创建webdriver对象并添加options
    # _instance = webdriver.Chrome(_options)
    # # 设置浏览器窗口最大化
    # _instance.maximize_window()

    ###===方式2
    _instance = None
    _options = None

    # def __init__(self):
    #     if not WD._instance:
    #         WD._options = webdriver.ChromeOptions()
    #         WD._options.add_experimental_option(name='detach', value=True)
    #         WD._instance = webdriver.Chrome(WD._options)
    #         WD._instance.maximize_window()

	###===方式3, 推荐
    @staticmethod
    def get_driver():
        if not WD._instance:
            WD._options = webdriver.ChromeOptions()
            WD._options.add_experimental_option(name='detach', value=True)
            WD._instance = webdriver.Chrome(WD._options)
            WD._instance.maximize_window()
        return WD._instance

    @staticmethod
    def quit_driver():
        WD._instance.quit()

if __name__ == '__main__':
    web_list = [
        'https://baidu.com',
        'https://126.com'
    ]
    for i in range(2):
        driver = WD.get_driver()
        driver.get(web_list[i])
        print(i)

    WD.quit_driver()

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值