Linux Docker部署Selenium Grid环境Edge浏览器选项配置不生效问题
问题根因
- 远程模式下Edge选项命名空间不匹配:Windows本地直连驱动时,Selenium会自动适配Chromium内核Edge的参数结构,直接传入即可生效。但Linux Selenium Grid远程运行时,Edge的配置需要放在
ms:edgeOptions专属命名空间下,你当前使用的参数拼接方式额外携带了Windows专属的适配参数,导致参数被误识别为Chrome格式,Edge驱动未从正确字段读取配置,所有配置项直接被忽略。 use_chromium=True参数干扰解析:该参数仅用于兼容Windows平台下非Chromium内核的旧版Edge,Linux环境下Selenium默认已将Edge识别为Chromium内核,额外传入该参数会打断SeleniumLibrary对Edge选项的拼接逻辑,导致后续所有启动参数未被注入到浏览器启动命令中。- 版本兼容缺陷:如果你的Selenium版本、SeleniumLibrary版本、Docker中Edge节点镜像版本任意一个低于4.0,Linux环境下会存在Edge远程参数传递的已知缺陷,也会出现配置不生效的问题。
修复方案
删除Run Edge关键字中无效的use_chromium=True参数即可,同时建议将无头模式参数改为适配性更好的新无头模式格式,修改后代码如下:
Run Edge [Documentation] Set configuration and open Edge browser. ${EDGE_OPTIONS} Catenate SEPARATOR= ... add_argument("--headless=new"); ... add_argument("--no-sandbox");add_experimental_option("excludeSwitches", ["enable-logging"]); ... add_argument("--proxy-server=http://myproxy.domain.com:8080") Open Browser about:blank browser=${BROWSER} options=${EDGE_OPTIONS} remote_url=${SELENIUM_GRID_HUB_URL}
如果修改后仍存在问题,请将SeleniumLibrary升级至最新版本,同时保证Docker中的Edge节点镜像版本与本地Edge驱动版本一致。
内容的提问来源于stack exchange,提问作者Michal
相关产品推荐
相关产品推荐

