Python使用Selenium启动Edge报错PlacementList must be sorted by first 8 bits of display_id如何解决
问题解决方法
该报错核心触发原因为Edge浏览器与msedgedriver版本不匹配、多显示器环境下GPU渲染兼容性问题、Selenium版本与驱动调用方式不匹配,可按以下步骤逐一排查解决:
- 步骤1:核对Edge浏览器与msedgedriver版本一致性
打开Edge浏览器,进入「设置」>「关于Microsoft Edge」查看当前浏览器的正式版本号,重新下载和浏览器大版本号完全一致的msedgedriver替换原有文件即可,版本号差一个小版本都可能触发兼容性报错。 - 步骤2:修正Selenium驱动调用写法,添加兼容性启动参数
如果你使用的是Selenium 4.x及以上版本,原有的直接传驱动路径的写法已经被废弃,需要通过Service类加载驱动,同时添加禁用GPU的启动参数规避多显示器渲染报错,修改后的代码如下:
from selenium import webdriver from selenium.webdriver.edge.service import Service # 替换为你的msedgedriver实际路径 e = "C:/Downloads/edgedriver_win64/msedgedriver.exe" s = Service(e) # 添加启动配置 options = webdriver.EdgeOptions() # 禁用GPU渲染规避显示相关报错 options.add_argument("--disable-gpu") # 禁用GPU软件光栅化 options.add_argument("--disable-software-rasterizer") driver = webdriver.Edge(service=s, options=options) driver.get("http://www.python.org")
- 步骤3:如果是多显示器环境下仍报错,可以暂时拔掉副屏,或者在Edge启动参数中添加
--display=:0指定使用主屏启动,即可解决。
内容的提问来源于stack exchange,提问作者Johs
相关产品推荐
相关产品推荐

