Appium 1.7.2真机可切换WebView,模拟器切换失败报错求助
解决Appium 1.7.2模拟器无法切换WebView的问题
你遇到的这个问题核心原因很明确:Chromedriver版本和模拟器中Chrome浏览器的版本不兼容。从报错信息能看到,你当前用的Chromedriver 2.33要求Chrome版本必须≥60.0.3112.0,但模拟器里的Chrome版本达不到这个要求,导致启动Chromedriver会话失败,进而触发NoSuchContextException。
下面是一步步的解决方法:
第一步:确认模拟器的Chrome版本
打开模拟器里的Chrome浏览器,点击右上角菜单→「设置」→拉到最底部的「关于Chrome」,记下当前的版本号(比如59.0.xxx)。第二步:匹配对应版本的Chromedriver
Chromedriver和Chrome的版本是严格对应的,大致规则是:- Chrome 60.x → Chromedriver 2.33
- Chrome 59.x → Chromedriver 2.32
- Chrome 58.x → Chromedriver 2.31
- Chrome 57.x → Chromedriver 2.30
根据你查到的Chrome版本,下载对应的Chromedriver。
第三步:替换Appium内置的Chromedriver
找到Appium安装目录下的Chromedriver位置:- Windows系统:通常在
C:\Program Files\Appium\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win - Mac系统:通常在
/usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac
把下载好的对应版本Chromedriver替换掉原文件,注意保持文件名和原来一致(比如Windows下是chromedriver.exe,Mac下是chromedriver)。
- Windows系统:通常在
第四步:验证并调整配置(可选)
重启Appium服务后重新运行测试代码。如果还是有问题,可以在Desired Capabilities里手动指定Chromedriver路径,确保Appium用的是你替换后的版本:ChromeOptions chromeOpts = new ChromeOptions(); chromeOpts.setBinary("/你的Chromedriver文件路径"); capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOpts);
另外一个小建议:如果模拟器的Chrome版本实在太旧,你可以尝试更新模拟器的系统镜像,或者直接下载对应版本的Chrome APK安装到模拟器里,这样能更灵活地控制Chrome版本,避免版本不兼容的问题。
内容的提问来源于stack exchange,提问作者Sanjay Bhatia
相关产品推荐
相关产品推荐

