Reputation: 107
Problem: I am trying to run appium automation on android emulator , the app launches but errors out saying No chromedriver found.
I was able to run earlier, like last month and all. But now it thorws me an error, probably because of some update either to appium or the chromedriver or the android.
Appium version - 1.8.1 OS : Mac Platform : Android
Tried verious options like , downgrading the appium ver, changing the chromedriver version to lower ones. Various post suggestion, none of them has a clear and proper thing to workaround
[debug] [ADB] Device API level: 24
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","shell","am","start","-W","-n","com.sparkletech.app/com.sparkletech.app.MainActivity","-S","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000"]
[debug] [AndroidDriver] Not cleaning generated files. Add `clearSystemFiles` capability if wanted.
[Appium] New AndroidDriver session created successfully, session fa4f13cc-80b2-4db1-b417-cd13798ee4af added to master session list
[debug] [BaseDriver] Event 'newSessionStarted' logged at 1535255463650 (13:51:03 GMT+1000 (Australian Eastern Standard Time))
[debug] [MJSONWP] Responding to client with driver.createSession() result: {"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"appPackage":"com.sparkletech.app","app":null,"noReset":true,"deviceName":"emulator-5554","appActivity":"com.sparkletech.app.MainActivity","build":"local-null","platformVersion":"7.0","name":"Swipe on Onboarding Carousel","browserName":"","platformName":"Android","printPageSourceOnFindFailure":"true","browserstack.debug":"true"},"appPackage":"com.sparkletech.app","app":null,"noReset":true,"deviceName":"emulator-5554","appActivity":"com.sparkletech.app.MainActivity","build":"local-null","platformVersion":"7.0","name":"Swipe on Onboarding Carousel","browserName":"","platformName":"Android","printPageSourceOnFindFailure":"true","browserstack.debug":"true","deviceUDID":"emulator-5554","deviceScreenSize":"1080x1920","deviceModel":"Android SDK built for x86","deviceManufacturer":"Google"}
[HTTP] <-- POST /wd/hub/session 200 5238 ms - 1071
[HTTP] --> GET /wd/hub/session/fa4f13cc-80b2-4db1-b417-cd13798ee4af/contexts {}
[debug] [MJSONWP] Calling AppiumDriver.getContexts() with args: ["fa4f13cc-80b2-4db1-b417-cd13798ee4af"]
[debug] [AndroidDriver] Getting a list of available webviews
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","shell","cat","/proc/net/unix"]
[debug] [AndroidDriver] WEBVIEW_9844 mapped to pid 9844
[debug] [AndroidDriver] Getting process name for webview
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","shell","ps"]
[debug] [AndroidDriver] Parsed pid: '9844' pkg: 'S' from
[debug] [AndroidDriver] USER PID PPID VSIZE RSS WCHAN PC NAME
[debug] [AndroidDriver] u0_a82 9844 1373 1510484 92776 futex_wait 00000000 S com.sparkletech.app
[debug] [AndroidDriver] Returning process name: 'S'
[debug] [AndroidDriver] Found webviews: ["WEBVIEW_S"]
[debug] [AndroidDriver] Available contexts: ["NATIVE_APP","WEBVIEW_S"]
[debug] [MJSONWP] Responding to client with driver.getContexts() result: ["NATIVE_APP","WEBVIEW_S"]
[HTTP] <-- GET /wd/hub/session/fa4f13cc-80b2-4db1-b417-cd13798ee4af/contexts 200 161 ms - 98
[HTTP] --> POST /wd/hub/session/fa4f13cc-80b2-4db1-b417-cd13798ee4af/context {"name":"WEBVIEW_S"}
[debug] [MJSONWP] Calling AppiumDriver.setContext() with args: ["WEBVIEW_S","fa4f13cc-80b2-4db1-b417-cd13798ee4af"]
[debug] [AndroidDriver] Getting a list of available webviews
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","shell","cat","/proc/net/unix"]
[debug] [AndroidDriver] WEBVIEW_9844 mapped to pid 9844
[debug] [AndroidDriver] Getting process name for webview
[debug] [ADB] Getting connected devices...
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","shell","ps"]
[debug] [AndroidDriver] Parsed pid: '9844' pkg: 'S' from
[debug] [AndroidDriver] USER PID PPID VSIZE RSS WCHAN PC NAME
[debug] [AndroidDriver] u0_a82 9844 1373 1518292 98828 binder_thr 00000000 S com.sparkletech.app
[debug] [AndroidDriver] Returning process name: 'S'
[debug] [AndroidDriver] Found webviews: ["WEBVIEW_S"]
[debug] [AndroidDriver] Available contexts: ["NATIVE_APP","WEBVIEW_S"]
[debug] [AndroidDriver] Connecting to chrome-backed webview context 'WEBVIEW_S'
[debug] [AndroidDriver] A port was not given, using random port: 8000
[debug] [Chromedriver] Changed state to 'starting'
[Chromedriver] Set chromedriver binary as: /usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac/chromedriver
[debug] [Chromedriver] Killing any old chromedrivers, running: pkill -15 -f "/usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac/chromedriver.*--port=8000"
[Chromedriver] No old chromedrivers seemed to exist
[debug] [Chromedriver] Cleaning any old adb forwarded port socket connections
[debug] [ADB] List forwarding ports
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","forward","--list"]
[debug] [ADB] Removing forwarded port socket connection: 12264
[debug] [ADB] Running '/Users/lokesh/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","emulator-5554","forward","--remove","tcp:12264"]
[Chromedriver] Spawning chromedriver with: /usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac/chromedriver --url-base=wd/hub --port=8000 --adb-port=5037 --verbose
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://127.0.0.1:8000/wd/hub/status] with no body
[debug] [JSONWP Proxy] Got response with status 200: "{\"sessionId\":\"\",\"status\":0,\"value\":{\"build\":{\"version\":\"alpha\"},\"os\":{\"arch\":\"x86_64\",\"name\":\"Mac OS X\",\"version\":\"10.13.4\"}}}"
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://127.0.0.1:8000/wd/hub/session] with body: {"desiredCapabilities":{"chromeOptions":{"androidPackage":"com.sparkletech.app","androidUseRunningApp":true,"androidDeviceSerial":"emulator-5554"}}}
[debug] [Chromedriver] Webview version: 'Chrome/51.0.2704.90'
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"7e665c4f7cb6a80ad2d9589e51504765","status":33,"value":{"message":"session not created exception: Chrome version must be >= 65.0.3325.0\n (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)"}}
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://127.0.0.1:8000/wd/hub/session] with body: {"desiredCapabilities":{"chromeOptions":{"androidPackage":"com.sparkletech.app","androidUseRunningApp":true,"androidDeviceSerial":"emulator-5554"}}}
[debug] [Chromedriver] Webview version: 'Chrome/51.0.2704.90'
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"5393e82cdbef8206a130d6f1e3fac315","status":33,"value":{"message":"session not created exception: Chrome version must be >= 65.0.3325.0\n (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)"}}
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://127.0.0.1:8000/wd/hub/session] with body: {"desiredCapabilities":{"chromeOptions":{"androidPackage":"com.sparkletech.app","androidUseRunningApp":true,"androidDeviceSerial":"emulator-5554"}}}
[debug] [Chromedriver] Webview version: 'Chrome/51.0.2704.90'
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"57883c05b8d4fe0b9ff9bb3c5121b4ee","status":33,"value":{"message":"session not created exception: Chrome version must be >= 65.0.3325.0\n (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)"}}
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://127.0.0.1:8000/wd/hub/session] with body: {"desiredCapabilities":{"chromeOptions":{"androidPackage":"com.sparkletech.app","androidUseRunningApp":true,"androidDeviceSerial":"emulator-5554"}}}
[debug] [Chromedriver] Webview version: 'Chrome/51.0.2704.90'
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"28397955268db8b06d4a2dc3055ed85a","status":33,"value":{"message":"session not created exception: Chrome version must be >= 65.0.3325.0\n (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)"}}
[Chromedriver] Chromedriver exited unexpectedly with code null, signal SIGTERM
[debug] [Chromedriver] Changed state to 'stopped'
[Chromedriver] Unable to automate Chrome version because it is too old for this version of Chromedriver.
[Chromedriver] Please see 'https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/chromedriver.md'
[Chromedriver] Error: session not created exception: Chrome version must be >= 65.0.3325.0
(Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)
at Chromedriver.callee$2$0$ (../../lib/chromedriver.js:163:26)
at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
Error: session not created exception: Chrome version must be >= 65.0.3325.0
(Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)
at Chromedriver.callee$2$0$ (../../lib/chromedriver.js:163:26)
at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[MJSONWP] Encountered internal error running command: Error: session not created exception: Chrome version must be >= 65.0.3325.0
(Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)
at Chromedriver.callee$2$0$ (../../lib/chromedriver.js:163:26)
at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[HTTP] <-- POST /wd/hub/session/fa4f13cc-80b2-4db1-b417-cd13798ee4af/context 500 2885 ms - 358
Upvotes: 6
Views: 37523
Reputation: 116
As the error implies, Appium cannot find a version of Chromedriver matching the available version of Chrome.
The easy way is to start Appium with the following flag. This downloads the matching Chromedriver version automatically:
appium --allow-insecure chromedriver_autodownload
Howver, if you are running a version of Chrome later than 5x.xx, the required version of Chromedriver may not be available to autodownload. Thus you need to download it manually by doing the following:
chromedriver is not available for Chrome version 53.0.2785.0
. Thus, we needed to find a chromedriver with the same version number.npx -g @puppeteer/browsers install [email protected]
/Users/<your-username>/chromedriver/…/chromedriver
. The correct folder would contain two files:
chromedriver
to the appium-chromedriver/chromedriver/mac
folder. From the logs pasted above, it's at /usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac/chromedriver
chromedriver
according to its version as follows: chromedriver_mac64_v53.0.2785.0
appium
Now try it out on your Android emulator. This trick also worked with Web mode for Appium Inspector.
Upvotes: 1
Reputation: 1
Hi I hope you are doing well, I was facing the same issue but tried multiple solutions available over the internet but couldn't resolve my issue, if you have the same issue please follow the below steps:
First go to your globalConfig.yml file and past log info in it as: APPIUM_LOG_LEVEL: info.
Now run your test cases and you will see in the logs that there is no chromedriver available in your system at the particular location, given in your logs,location ex: /usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac
So don't worry if there is no such path in your system, pls create the same path as that you see in your logs and download chromeDriver in it OR copy the already downloaded chromeDriver inside this path.
Now rebuild your project and run your cases
Now you will see it's working.
Upvotes: 0
Reputation: 11
For Hybrid Android app in Windows there is also a use case when user is having context but unable to switch (especially to WebView) : User may see
NoSuchContextException: An unknown server-side error occurred while processing the command.
Original error: No ChromeDriver found that can automate Chrome '116.0.0'.
Then, update the Appium & drivers
-> npm appium driver update
-> appium driver update <driver_name>
Kill the server and relaunch.
If still issues persists, then check the server logs for
Found 1 executable in 'C:\Users\dhakshath\.appium\node_modules\appium-flutter-driver\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win'
[debug] [Chromedriver@75e3] The following Chromedriver executables were found:
[debug] [Chromedriver@75e3] 'C:/Users/dhakshath/.appium/node_modules/appium-flutter-driver/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/win/chromedriver-win64_v115.0.5790.170.exe' (version '115.0.5790.170', minimum Chrome version '115.0.5790')
So user need to go to path mentioned in Found 1 >> C:\Users\dhakshath\.appium\node_modules\appium-flutter-driver\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win
COPY the chromedriver.exe and REPLACE it in
C:/Users/dhakshath/.appium/node_modules/appium-flutter-driver/node_modules/appium-uiautomator2-driver/node_modules/appium-chromedriver/chromedriver/win/chromedriver-win64_v115.0.5790.170.exe
Relaunch app, it will work.
If still version is mismatched, then user might need to download chromeDriver manually and paste it.
Upvotes: 0
Reputation: 1854
I faced the same issue on my machine, which has configured with the latest updated version.
Resolving issue with this command:
appium --allow-insecure chromedriver_autodownload
It worked for me.
Upvotes: 0
Reputation: 69
run this command
appium --allow-insecure chromedriver_autodownload
if you are running appium with gui then install appium npm package as follow:
Upvotes: 0
Reputation: 146
appium --allow-insecure chromedriver_autodownload
It worked for me.
Upvotes: 4
Reputation: 41
You can let Appium to automatically download the chromedriver version:
"appium --allow-insecure chromedriver_autodownload" run this in the CMD where you were running appium server. Once if we run above command then appium get the compatible browser version matching the emulator/device and now from next time just start appium server normally and run the code.
The above command tested in Appium v1.21.0
Check this video -how to update appium chrome driver
Upvotes: 3
Reputation: 5181
https://appium.io/docs/en/writing-running-appium/web/chromedriver/
Download the expected version of exe from the above location and set below the desired capability for AndroidDriver.
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("chromedriverExecutable","D:\\Automation_Project\\MobileAutomationBestPractices\\drivers\\chromedriver.exe");
Upvotes: 5
Reputation: 455
You need to update/downgrade the chromedriver.exe file for appium based on the version from here https://appium.io/docs/en/writing-running-appium/web/chromedriver/
Which is available at following path "C:\Users\[UserName]\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win\"
Just delete the previous chromedriver.exe and download and paste the appropriate version.
Upvotes: 2
Reputation: 84
The following is a list of Chromedriver versions and their corresponding minimum Chrome version that is automatable:
https://appium.io/docs/en/writing-running-appium/web/chromedriver/
You will either need to upgrade the Chrome to the latest version that is:
Chrome version must be >= 65.0.3325.0
Driver info: chromedriver=2.38.552518 as mentioned in the logs.
If you specifically need the Chrome version '53.0.2785' then you should install ChromeDriver 2.26 https://chromedriver.storage.googleapis.com/index.html?path=2.26/ which is compatible with the corresponding version.
Reference:
https://appium.io/docs/en/writing-running-appium/web/chromedriver/
How to upgrade chromedriver version for appium?
Upvotes: 2