Appium Python切换微信WebView上下文时ChromeDriver仅支持Chrome83报错咨询
问题结论:完全不需要将本地Chrome降级到83版本
核心认知误区
- 两组版本匹配关系完全独立,不要混淆:
- 需要驱动的微信内置WebView(版本77.0.3865.120)运行在安卓设备端,和电脑上安装的本地桌面Chrome版本没有绑定关系
- chromedriver的匹配规则为:必须使用和设备端WebView大版本号一致的chromedriver,和本地桌面Chrome的版本无关
替换chromedriver未生效的根因
结合提供的Appium运行日志,问题出在Appium的chromedriver自动选择机制:
- Appium不会默认固定调用指定路径下名为
chromedriver.exe的文件,它会遍历该目录下所有chromedriver可执行文件,按照「版本不低于设备WebView版本、最接近WebView版本」的规则自动选中目标程序 - 当前chromedriver目录下留存了多个83版本的chromedriver程序,这些程序的最低兼容版本为Chrome 83。按照chromedriver的向下兼容规则,83版本的chromedriver无法连接内核版本为77的WebView。哪怕把默认路径下的
chromedriver.exe替换为77版本,Appium遍历到目录下的83版本程序时,仍会优先选中不符合兼容要求的83版本chromedriver,最终抛出版本不匹配的报错。
可落地的解决步骤
- 打开Appium对应的chromedriver存储目录,将目录下所有非77大版本的chromedriver可执行文件临时移出,仅保留和设备WebView内核匹配的77.0.3865.x版本程序,并重命名为
chromedriver.exe - 在Appium的初始化能力配置(Capabilities)中新增
chromedriverExecutable配置项,直接填写放置的77版本chromedriver的全路径,完全跳过Appium的自动扫描匹配流程 - 整个操作过程不需要调整本地Chrome的版本,只要chromedriver版本和设备端WebView的大版本匹配,无论本地桌面Chrome是90还是其他版本,都能正常驱动设备上的WebView。
内容的提问来源于stack exchange,提问作者Venus
相关产品推荐
相关产品推荐

