Selenium Grid运行报错WebDriverException无法解析远程响应如何解决
Selenium 报错 org.openqa.selenium.WebDriverException: Unable to parse remote response 解决方案
该报错本质是Selenium客户端无法识别Selenium Hub返回的响应内容,可按以下优先级排查解决:
- Selenium Hub 运行状态异常
首先确认本地4444端口的Selenium Hub已正常启动,直接在浏览器访问http://localhost:4444/grid/console,如果无法打开则说明Hub未启动、启动失败或者监听端口不是4444,修正Hub启动配置后重试即可。 - 版本不兼容问题
这是该报错的最高频诱因,需保证三个组件的版本匹配:- Selenium客户端依赖版本、Selenium Hub部署版本、对应浏览器驱动版本三者主版本必须统一,要么全用Selenium3系列,要么全用Selenium4系列
- 浏览器驱动(chromedriver/geckodriver/IEDriverServer)的大版本必须和对应浏览器的安装大版本完全一致
- 配置参数错误
你的代码存在两处配置问题:- IE浏览器的browserName配置错误,官方标准值为
internet explorer(中间带空格),你写的驼峰格式internetExplorer会导致Hub无法识别对应的Node节点 - 使用RemoteWebDriver时不需要在本地配置
System.setProperty指定驱动路径,驱动是部署在Selenium Node节点上的,本地配置的路径无效还可能引发冲突,直接删除该配置即可
另外如果使用Selenium4版本,DesiredCapabilities已废弃,推荐替换为对应浏览器的Options类配置,示例如下:
// Chrome配置示例 ChromeOptions options = new ChromeOptions(); options.setPlatformName("ANY"); driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), options); - IE浏览器的browserName配置错误,官方标准值为
- 网络拦截问题
确认本地防火墙、代理规则没有拦截4444端口的请求,避免客户端请求无法正常到达Hub。
排查时可以先注释掉RemoteWebDriver相关代码,直接初始化本地驱动(如new ChromeDriver())验证浏览器启动正常,确认代码本身无问题后再排查Hub侧配置。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

