# 浏览器初始化函数 def browser_init(login_type): """ 初始化浏览器设置和实例。 此函数旨在创建并配置一个Chrome浏览器实例,包括设置Chrome选项以排除不必要的日志, 并尝试打开特定的登录页面。任何初始化过程中出现的错误都会被捕获并记录。 参数: login_type (str): 指定登录类型,根据不同的登录类型选择不同的URL。 返回: 无 """ # 标记初始化过程的开始 INFO("'----------' 正在初始化浏览器 '----------'") # 创建Chrome选项实例,用于配置浏览器行为 options = webdriver.ChromeOptions() # 添加实验性选项,排除某些命令行开关以减少输出日志 options.add_experimental_option('excludeSwitches', ['enable-Logging']) # 忽略证书错误,允许在本地主机上运行时不安全 options.add_argument('--ignore-certificate-errors') # 禁用自动化控制特征检测,避免被网站识别为自动化流量 options.add_argument('--disable-blink-features=AutomationControlled') # 允许不安全的本地主机运行,通常用于开发和测试环境 options.add_argument('--allow-insecure-localhost') # 使用webdriver_manager自动下载并管理chromedriver # service = ChromeService(ChromeDriverManager().install()) # 使用备用的ChromeDriver下载源 # service = Service(ChromeDriverManager().install()) # 手动指定ChromeDriver的路径 # 自动化运行服务器的chromedriver路径: service = Service(r'C:\Users\29194\AppData\Local\Programs\Python\Python310\Scripts\chromedriver.exe') # service = Service(r'C:\Program Files\Python310\Scripts\chromedriver.exe') # 尝试创建WebDriver实例并执行初始化操作 try: # 创建WebDriver实例 wd = webdriver.Chrome(service=service, options=options) # 设置隐式等待时间为10秒,以允许元素加载 wd.implicitly_wait(60) # 获取登录URL login_url = get_login_url_from_config(login_type) # 打开对应类型的登录页面 wd.get(login_url) # 最大化浏览器窗口 wd.maximize_window() # 将WebDriver实例存储在全局存储器中,以便后续使用 GSTORE['wd'] = wd # 标记初始化过程完成 INFO("'----------' 浏览器初始化完成 '----------'") except Exception as e: # 捕获并记录初始化过程中的任何异常 logging.error(f"浏览器初始化失败:{e}")