Appium [求助] 困扰了很久的 chromedriver 版本问题

willow_na · 2018年12月17日 · 最后由 知無涯 回复于 2019年01月05日 · 2740 次阅读

DesiredCapabilities 的配置如下:

desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1.1");
desiredCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "MEIZU PRO 6s");
//desiredCapabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
desiredCapabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "");
desiredCapabilities.setCapability(MobileCapabilityType.AUTO_WEBVIEW, true);
desiredCapabilities.setCapability(MobileCapabilityType.NO_RESET, true);

//android only
desiredCapabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.company.department.project.beta.MainActivity");
desiredCapabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.company.department.project.beta");
desiredCapabilities.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true);
desiredCapabilities.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true);

appium 的 chromedriver(C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win)版本配置为 2.22.397933,手机上的 webview 的版本为:Chrome version on device: Chrome/51.0.2074.203,但是运行 testcase 时总是报错:

[Chromedriver] Unable to automate Chrome version because it is too old for this version of Chromedriver.
[Chromedriver] Chrome version on device: Chrome/51.0.2074.203
[Chromedriver] Please see 'https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md'
[Chromedriver] Error: Failed to start Chromedriver session: An unknown server-side error occurred while processing the command. Original error: unknown error: Chrome version must be >= 49.0.2623.0
[Chromedriver]   (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.1.7601 SP1 x86_64)
[Chromedriver]     at Object.wrappedLogger.errorAndThrow (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-support\lib\logging.js:78:13)
[Chromedriver]     at Chromedriver.callee$2$0$ (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\lib\chromedriver.js:449:13)
[Chromedriver]     at tryCatch (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:67:40)
[Chromedriver]     at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:315:22)
[Chromedriver]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
[Chromedriver]     at GeneratorFunctionPrototype.invoke (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:136:37)
[Chromedriver]     at run (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\webpack:\~\babel-polyfill\~\core-js\modules\es6.promise.js:75:1)
[Chromedriver]     at C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\webpack:\~\babel-polyfill\~\core-js\modules\es6.promise.js:92:1
[Chromedriver]     at flush (C:\Users\310236939\AppData\Local\Programs\Appium\resources\app\webpack:\~\babel-polyfill\~\core-js\modules\_microtask.js:18:1)
[Chromedriver]     at process._tickCallback (internal/process/next_tick.js:61:11)

我的版本都是照着 google 的配置的,而且也都是匹配的,为什么还总是会报版本的 error 啊?

最佳回复

一般系统应用里都会有 Android System WebView 自己可以找找
或者 adb shell dumpsys package com.google.android.webview | find "versionName" 也可以看

共收到 7 条回复 时间 点赞

去看手机里看 Android System WebView 这个系统应用的版本号,然后去下载对应驱动。

YueChen 回复

我是 MEIZU Pro6s,手机里面没看到 webview 的版本,appium 运行的时候看到是 51.0.2074.203,我就下了对应的 chromedriver:2.22.397933,但还是不行~😭 😭 😭

一般系统应用里都会有 Android System WebView 自己可以找找
或者 adb shell dumpsys package com.google.android.webview | find "versionName" 也可以看

试试其他版本的 chromedriver 版本,不要紧盯着这一个版本,你想切换到 H5 页面的 Chrome 版本有可能并不是日志上打印出来的

好的,我试试看,谢谢~

YueChen 回复

我遇到过魅族的手机出现过这种情况,当时是这样子的:手机中看到 com.google.android.webview 版本号是 49.10.xxx,找到 appium.io 中的说明,说需要用 2.23 的 chromedriver,但是下载 2.23 版本的 chromedriver 来使用,依旧报错,不能用,再次查看http://appium.io/docs/en/writing-running-appium/web/chromedriver/#chromedriverchrome-compatibility ,发现每个 chromedriver 有规定的最小适配的 com.google.android.webview 版本,并不是说 49~51 就一定是 49.0 开始的,它有可能是 49.2 开始才可用(注:上面写的版本号,只是举例说明用的,以你实际查到的为准)

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册