Selenium Edge Python测试执行后自动关闭浏览器且出现报错如何解决?
问题原因及解决方法
浏览器自动退出的核心原因
你的代码执行完所有逻辑后,Python进程自然终止,webdriver实例被资源回收,就会自动关闭关联的Edge浏览器,和你列的报错没有关联,属于Selenium的默认行为。
报错含义说明
DevTools listening on ws://xxx:属于正常的运行日志,不是报错,仅表示Edge的DevTools调试协议已经正常启动,绑定了本地WebSocket端口,无需处理。EDGE_IDENTITY: Get Default OS Account failed:Edge浏览器尝试读取系统当前登录的微软账户信息失败,属于Edge自带的账户同步功能的报错,不影响网页自动化操作的正常执行,可以忽略。fallback_task_provider.cc(119):这是Chromium内核的已知非严重性bug,和渲染进程的任务调度逻辑有关,对当前自动化场景无任何影响,无需处理。
保持浏览器运行的解决方案
方案1:添加阻塞逻辑
在代码末尾添加输入阻塞语句,让程序不直接终止:
from selenium import webdriver from selenium.webdriver.edge.service import Service ser = Service("C:\\Users\\Desktop\\Projects\\auto_login\\msedgedriver.exe") driver = webdriver.Edge(service = ser) driver.get("http://yahoo.com") print(driver.title) print(driver.current_url) # 新增阻塞语句,按回车后程序才会继续执行结束 input("按回车键退出程序...")
方案2:添加detach启动参数
配置Edge启动选项,设置 detach 参数,就算Python进程结束,浏览器也不会自动关闭:
from selenium import webdriver from selenium.webdriver.edge.service import Service from selenium.webdriver.edge.options import Options ser = Service("C:\\Users\\Desktop\\Projects\\auto_login\\msedgedriver.exe") # 初始化配置项 edge_options = Options() edge_options.add_experimental_option("detach", True) driver = webdriver.Edge(service = ser, options=edge_options) driver.get("http://yahoo.com") print(driver.title) print(driver.current_url)
内容的提问来源于stack exchange,提问作者cigstack
相关产品推荐
相关产品推荐

