Appium 运行程序的时候报错:No Chromedriver found that can automate Chrome '52.0.2743'

littlefive · 2018年08月09日 · 最后由 GitHubmengyu 回复于 2019年09月23日 · 6282 次阅读

selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command.
Original error: No Chromedriver found that can automate Chrome '52.0.2743

这个意思是没有 chromedriver ?还是什么意思?

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

desired_caps = {}
desired_caps['platformName'] = 'android'
desired_caps['platformVersion'] = '6.0.1'
desired_caps['deviceName'] = '127.0.0.1:7555'
desired_caps["unicodeKeyboard"] = 'True'  #声明中文
desired_caps["resetKeyboard"] = 'True'  #声明中文,否则不支持中文
# desired_caps['noReset'] = 'True'  #执行时不初始化
desired_caps['appPackage'] = 'com.wondershare.drfone'
desired_caps['appActivity'] = 'com.wondershare.drfone.ui.activity.WelcomeActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(3)
driver.find_element_by_id('com.wondershare.drfone:id/btnBackup').click()

WebDriverWait(driver,8).until(lambda x:x.find_element_by_id('com.wondershare.drfone:id/btnRecoverData'))
driver.find_element_by_id('com.wondershare.drfone:id/btnRecoverData').click()

WebDriverWait(driver,8).until(lambda x:x.find_element_by_class_name('android.webkit.WebView'))

contexts=driver.contexts
print(contexts)

driver.switch_to.context('WEBVIEW_com.wondershare.drfone')
driver.find_element_by_id('email').send_keys('3310dfd8dfd96@163.com')
driver.find_element_by_class_name('android.widget.Button').click()
driver.switch_to.context('NATIVE_APP')
driver.find_element_by_id('android.widget.ImageButton').click()









共收到 22 条回复 时间 点赞

没有对应的版本的 chrome driver

log 里面有提示:

对 雨夜狂奔 回复

可是确实用的是这个正确的版本

对 雨夜狂奔 回复


这是本机与虚拟机上的 chrome 版本,安装的 chromedriver 为:


Chromedriver 路径:
C:\Users\AppData\Roaming\npm\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win

对 littlefive 回复

看你一楼日志 Webview 的 chrome 版本应该是 52 呢?要区分 chrome 浏览器和 Web view 的版本哦

我今天也遇到这个问题,Chromedriver 版本要和你手机里 Android System WebView 的版本一致,不是你 PC 电脑上的 Chrome 版本

对 ziqiu 回复

请问一下 这个 chromedriver 是指模拟器上面的版本吗

手机的系统的 webview 要与 appium 本地安装目录的 chromedriver 的版本对应

对 ziqiu 回复

chrom 的版本 是不是也要跟着改变。Chromedriver 版本、Android System WebView 的版本、Chrome,这 3 个版本要找到一致的。因为模拟器里的 Webview 版本是 52,那么 Chromedriver 和 Chrome 的版本要找到相应的版本。是这样么?

你的 chromedriver 版本和模拟器上的 webview 版本对应一致应该就可以了。

很明显,你 appium 下的 chromedriver 的版本不是 52

对 笑哼 回复

请问有什么办法可以检查 appium 下的 chromedriver 是否和系统版本 webview 一样呢

对 kingeast 回复

appium 的 log 里可以看出来啊

那最后怎么解决的,巨佬们

先要看手机里的 Android System WebView 版本号是多少?我用的模拟器里面是 39.0.0=38.0.2125.0 对应 chromedriver_v2.1.3(以为是 39 下了个 2.1.4 结果不行)。然后把 chromedriver 放到 {Appium path}\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win 即可(cmd:where appium 查路径)。网上的教程好多有问题!和电脑和手机里的 chrome 浏览器完全没关系!!

对 ryanlee 回复

Android System WebView 版本号是 58.0.1024.124 的,电脑和手机的 chrome 都是 58 版本的,对应下载的 chromedriver 是 2.30 的,可是运行了还是报错,错误日志和楼主的一致

对 littlefive 回复

楼主,您的问题解决了吗?如果解决了可否提供一下解决办法吗?

对 s-m-a-l-l 回复

解决了。。我更换了模拟器!!!

对 littlefive 回复

我用的是真机,您原来用的什么模拟器呢?

对 ryanlee 回复

你好,我切换 contexts 的时候报错 No Chromedriver found that can automate Chrome '51.0.2704',用对应版本 2.23 的 chromedriver 替换了 appium\node_modules\appium-chromedriver\chromedriver\win 里的 chromedriver.exe,运行以后还是报同样的错,请帮忙解答一下,谢谢你。

对 littlefive 回复

只更换了模拟器么? 其他的代码及环境配置有做改变么?

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