Selenium-webdriver_manager判断是否已经下载过驱动(复用缓存驱动)

1,谷歌浏览器默认位置

在这里插入图片描述
2,ChromeDriverManager 下载的驱动位置 其中admin为机器的用户名
在这里插入图片描述

    def installDriver(self):
        """判断是否需要下载driver"""
        
        """找到本机谷歌浏览器版本"""
        """C:\Program Files\Google\Chrome\Application\122.0.6261.112   
        找到名字为版本号的文件夹"""
        
        dirPath=r'C:\Program Files\Google\Chrome\Application'
        version='122.0.6261.112'
        for item in os.listdir(dirPath):
            if re.search(r'\d{3}.\d.\d{4}.\d{3}',item):
                version=re.search(r'\d{3}.\d.\d{4}.\d{3}',item).group(0)
                break
        username = getpass.getuser()  #获取本机
        driver_path = f"""C:\\Users\\{username}\\.wdm\\drivers\\chromedriver\\win64\\{version}\\chromedriver-win32\\chromedriver.exe"""
        if not os.path.exists(driver_path):
            driver_path = ChromeDriverManager().install()
        return driver_path




    def createDriver(self):
     
        driver_path=self.installDriver()
        op = webdriver.ChromeOptions()
        # op.add_argument('headless')
        op.add_argument('disable-infobars')
        op.add_argument('--ignore-certificate-errors')
        op.add_argument('--allow-insecure-localhost')
        op.add_argument('-ignore -ssl-errors')
        op.add_experimental_option('excludeSwitches', ['enable-automation'])  # 以键值对的形式加入参数
        prefs = {"profile.default_content_settings.popups": 1}
        op.add_experimental_option('prefs', prefs)
        script = '''
                                        Object.defineProperty(navigator, 'webdriver', {
                                            get: () => undefined
                                        })
                                        '''
        self.driver = webdriver.Chrome(service=Service(driver_path))
        self.driver.maximize_window()
        self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
        self.driver.execute_script(script)
        script = '''
                                                Object.defineProperty(navigator, 'plugins', {
                                                    get: () => 2
                                                })
                                                '''
        self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
        self.driver.set_page_load_timeout(60)

相关推荐

  1. 解决selenium手动下载驱动问题

    2024-03-18 15:30:05       28 阅读
  2. Selenium 驱动配置 和 元素定位

    2024-03-18 15:30:05       39 阅读
  3. 驱动开发--多路复用-信号

    2024-03-18 15:30:05       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 15:30:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 15:30:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 15:30:05       87 阅读
  4. Python语言-面向对象

    2024-03-18 15:30:05       96 阅读

热门阅读

  1. CSS浮动

    CSS浮动

    2024-03-18 15:30:05      37 阅读
  2. 免费SSL证书Let‘sEncrypt安装

    2024-03-18 15:30:05       43 阅读
  3. C#基础之异常处理

    2024-03-18 15:30:05       36 阅读
  4. Python中的with语句以及它的用途。

    2024-03-18 15:30:05       42 阅读
  5. Kafka 实现之分配(Distribution)

    2024-03-18 15:30:05       34 阅读
  6. react组件懒加载

    2024-03-18 15:30:05       40 阅读
  7. freemarker if 判断list 中的元素是否为null

    2024-03-18 15:30:05       45 阅读
  8. MySQL模块---安装并配置

    2024-03-18 15:30:05       38 阅读
  9. 牛津大学“领域驱动设计”课程

    2024-03-18 15:30:05       47 阅读
  10. 【 React 】React 组件之间如何通信?

    2024-03-18 15:30:05       46 阅读
  11. JVM学习-常量池、运行时常量池以及串池

    2024-03-18 15:30:05       44 阅读