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

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

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 回复

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

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