python自动下载更新各浏览器驱动(示例谷歌驱动)到指定位置

一 背景

在使用selenium的时候,用谷歌浏览器需要经常更新驱动,在网上找到了webdriver-manager在各浏览器的用法,但因为一般用法未更新谷歌驱动到我需要的anaconda3+谷歌浏览器安装位置的路径下,所以每次运行都会下载一次,很慢,就借助了webdriver-manager已实现的功能,实现将谷歌驱动下载到指定位置。

二 webdriver-manager各浏览器一般用法

以下这种方法虽然可以用,但因为未更新谷歌驱动到我需要的anaconda路径下,所以每次运行都会下载一次,很慢

#!/usr/bin/env python
# encoding: utf-8

from selenium import webdriver
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager  # Chrome
from webdriver_manager.firefox import GeckoDriverManager  # FireFox
from webdriver_manager.microsoft import IEDriverManager, EdgeChromiumDriverManager  # IE、Edge
url = 'https://www.baidu.com/'
# 应用举例
def wb_test():   
    try:
        driver = webdriver.Chrome()
    except:
        # 异常时,再去下载driver
        # selenium3.x 用法
        driver = webdriver.Chrome(ChromeDriverManager().install())  # Chrome
        # driver = webdriver.Firefox(GeckoDriverManager().install())  # FireFox
        # driver = webdriver.Edge(EdgeChromiumDriverManager().install())  # Edge
        # selenium4.x 用法
        # driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
    
    driver.get(url)
    sleep(1)
    driver.close()

if __name__ == '__main__':
    wb_test()

三 下载谷歌驱动到指定位置示例(优化版本)

思路:利用webdriver-manager下载浏览器对应版本的谷歌驱动,找到存放路径后,shutil.copyfile(src, dest)将下载的谷歌驱动移动到需要的位置

#!/usr/bin/env python
# encoding: utf-8
'''
@Author  : 草木零
@Software: PyCharm
@File    : Update_chromeDriver.py
@Time    : 2023/8/1 18:54
@desc   : 借助webdriver,自动更新谷歌驱动到指定位置
'''

import shutil

from selenium import webdriver
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager  # Chrome


# 借助webdriver下载的谷歌驱动,移动到指定位置
def update_driver():
    # selenium3.x 用法
    try:
        driver = webdriver.Chrome()
    except:
        # 异常时,再去下载driver

        driver_path = ChromeDriverManager().install()  # 下载latest release版本的chromedriver,并返回其在本机的下载存储路径
        print(driver_path)
        src = driver_path

        # 我的谷歌浏览器安装位置下的旧谷歌驱动
        dest1 = r'C:\Program Files\Google\Chrome\Application\chromedriver.exe'
        shutil.copyfile(src, dest1)

        # 我的anaconda3安装位置下的旧谷歌驱动所在位置
        dest2 = r'D:\ProgramFiles\Anaconda3\chromedriver.exe'
        shutil.copyfile(src, dest2)

        # 因为上面已经将对应的谷歌驱动放到需要的位置了,所以现在不会报错了
        driver = webdriver.Chrome()

    # 尝试进行访问
    url = 'https://www.baidu.com/'
    driver.get(url)
    sleep(1)
    driver.close()
    

if __name__ == '__main__':
    update_driver()

你可能感兴趣的:(自动化测试,selenium,python,浏览器驱动,自动更新驱动,selenium)