Appium issue switching to webview (Device emulator-5554 is already in use)

Hi all,

I’m experiencing an issue when try to switch to webview mode in an android app, when I access to the webview window in the app then I have to choose between 2 webviews, so I choose the one that I need, but then I get a very strange error (Device emulator-5554 is already in use)…

I switch to the webview this this simple method:

    public void SwitchToWebContext()
    {
      string Context = "WEBVIEW";
      Wait.Until(d => this.driver.Contexts.Any(c => c.Contains(Context)));
      driver.Context = WEBVIEW_com.xxxx.yyyy
    }

I don’t have this problem with other apps, just with this one…

These are the logs:

2024-04-11 17:18:50:663 - [AndroidUiautomator2Driver@07ce (d89b4276)] Found 2 webviews: [“WEBVIEW_chrome”,“WEBVIEW_com.xxxx.yyyy”]
2024-04-11 17:18:50:664 - [AndroidUiautomator2Driver@07ce (d89b4276)] Available contexts: [“NATIVE_APP”,“WEBVIEW_chrome”,“WEBVIEW_com.xxxx.yyyy”]
2024-04-11 17:18:50:664 - [AndroidUiautomator2Driver@07ce (d89b4276)] Connecting to chrome-backed webview context ‘WEBVIEW_com.xxxx.yyyy’
2024-04-11 17:18:50:665 - [AndroidUiautomator2Driver@07ce (d89b4276)] The ‘chromeDriverPort’ capability is deprecated. Please use ‘chromedriverPort’ instead
2024-04-11 17:18:50:665 - [AndroidUiautomator2Driver@07ce (d89b4276)] Using user-specified port 62173 for chromedriver
2024-04-11 17:18:50:665 - [AndroidUiautomator2Driver@07ce (d89b4276)] Passing web view details to the Chromedriver constructor: {
2024-04-11 17:18:50:666 - [AndroidUiautomator2Driver@07ce (d89b4276)] “info”: {
2024-04-11 17:18:50:666 - [AndroidUiautomator2Driver@07ce (d89b4276)] “Android-Package”: “com.xxxx.yyyy”,
2024-04-11 17:18:50:666 - [AndroidUiautomator2Driver@07ce (d89b4276)] “Browser”: “Chrome/113.0.5672.136”,
2024-04-11 17:18:50:666 - [AndroidUiautomator2Driver@07ce (d89b4276)] “Protocol-Version”: “1.3”,
2024-04-11 17:18:50:666 - [AndroidUiautomator2Driver@07ce (d89b4276)] “User-Agent”: “Mozilla/5.0 (Linux; Android 14; sdk_gphone64_x86_64 Build/UE1A.230829.036.A1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/113.0.5672.136 Mobile Safari/537.36”,
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] “V8-Version”: “11.3.244.11”,
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] “WebKit-Version”: “537.36 (@2d54072eb2f350d37f3f304c4ba0fafcddbd7e82)”,
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] “webSocketDebuggerUrl”: “ws://127.0.0.1:10900/devtools/browser”
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] },
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] “process”: {
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] “name”: “com.xxxx.yyyy”,
2024-04-11 17:18:50:667 - [AndroidUiautomator2Driver@07ce (d89b4276)] “id”: “15751”
2024-04-11 17:18:50:668 - [AndroidUiautomator2Driver@07ce (d89b4276)] }
2024-04-11 17:18:50:668 - [AndroidUiautomator2Driver@07ce (d89b4276)] }
2024-04-11 17:18:50:669 - [AndroidUiautomator2Driver@07ce (d89b4276)] Precalculated Chromedriver capabilities: {
2024-04-11 17:18:50:669 - [AndroidUiautomator2Driver@07ce (d89b4276)] “androidPackage”: “com.xxxx.yyyy”,
2024-04-11 17:18:50:669 - [AndroidUiautomator2Driver@07ce (d89b4276)] “androidUseRunningApp”: true,
2024-04-11 17:18:50:670 - [AndroidUiautomator2Driver@07ce (d89b4276)] “androidProcess”: “com.xxxx.yyyy”,
2024-04-11 17:18:50:670 - [AndroidUiautomator2Driver@07ce (d89b4276)] “androidDeviceSerial”: “emulator-5554”
2024-04-11 17:18:50:670 - [AndroidUiautomator2Driver@07ce (d89b4276)] }
2024-04-11 17:18:50:670 - [AndroidUiautomator2Driver@07ce (d89b4276)] Before starting chromedriver, androidPackage is ‘com.xxxx.yyyy’
2024-04-11 17:18:50:670 - [Chromedriver@d7bf] Changed state to ‘starting’
2024-04-11 17:18:50:670 - [Chromedriver@d7bf] Using the static Chromedriver->Chrome mapping
2024-04-11 17:18:50:671 - [Chromedriver@d7bf] The most recent known Chrome version: 123.0.6312
2024-04-11 17:18:50:672 - [Chromedriver@d7bf] Found 2 executables in ‘C:\Users\zzzzz.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win’
2024-04-11 17:18:50:690 - [Chromedriver@d7bf] The following Chromedriver executables were found:
2024-04-11 17:18:50:690 - [Chromedriver@d7bf] ‘C:\Users\zzzzz.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win\chromedriver-win64_v123.0.6312.105.exe’ (version ‘123.0.6312.105’, minimum Chrome version ‘123.0.6312’)
2024-04-11 17:18:50:690 - [Chromedriver@d7bf] ‘C:\Users\zzzzz.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win\chromedriver_win32_v113.0.5672.63.exe’ (version ‘113.0.5672.63’, minimum Chrome version ‘113.0.5672’)
2024-04-11 17:18:50:690 - [Chromedriver@d7bf] Browser version in the supplied details: Chrome/113.0.5672.136
2024-04-11 17:18:50:691 - [Chromedriver@d7bf] Found Chrome bundle ‘undefined’ version ‘113.0.5672’
2024-04-11 17:18:50:691 - [Chromedriver@d7bf] Found 1 executable capable of automating Chrome ‘113.0.5672’.
2024-04-11 17:18:50:691 - [Chromedriver@d7bf] Choosing the most recent, ‘C:\Users\zzzzz.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win\chromedriver_win32_v113.0.5672.63.exe’.
2024-04-11 17:18:50:691 - [Chromedriver@d7bf] If a specific version is required, specify it with the chromedriverExecutabledesired capability.
2024-04-11 17:18:50:691 - [Chromedriver@d7bf] Set chromedriver binary as: C:\Users\zzzzz.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win\chromedriver_win32_v113.0.5672.63.exe
2024-04-11 17:18:50:691 - [Chromedriver@d7bf] Killing any old chromedrivers, running: wmic process where “commandline like ‘%chromedriver.exe%–port=62173%’” delete
2024-04-11 17:18:50:818 - [Chromedriver@d7bf] Successfully cleaned up old chromedrivers
2024-04-11 17:18:50:818 - [Chromedriver@d7bf] Cleaning this device’s adb forwarded port socket connections: emulator-5554
2024-04-11 17:18:50:819 - [ADB] List forwarding ports
2024-04-11 17:18:50:819 - [ADB] Running ‘C:\Users\zzzzz\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s emulator-5554 forward --list’
2024-04-11 17:18:50:834 - [Chromedriver@d7bf] Spawning chromedriver with: C:\Users\zzzzz.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-chromedriver\chromedriver\win\chromedriver_win32_v113.0.5672.63.exe --port=62173 --adb-port=5037 --verbose
2024-04-11 17:18:50:849 - [Chromedriver@d7bf] ChromeDriver version: ‘113.0.5672.63’
2024-04-11 17:18:50:849 - [Chromedriver@d7bf] Matched ‘/status’ to command name ‘getStatus’
2024-04-11 17:18:50:850 - [Chromedriver@d7bf] Proxying [GET /status] to [GET http://127.0.0.1:62173/status] with no body
2024-04-11 17:18:50:851 - [Chromedriver@d7bf] Got response with status 200: {“value”:{“build”:{“version”:“113.0.5672.63 (0e1a4471d5ae5bf128b1bd8f4d627c8cbd55f70c-refs/branch-heads/5672@{#912})”},“message”:“ChromeDriver ready for new sessions.”,“os”:{“arch”:“x86_64”,“name”:“Windows NT”,“version”:“10.0.19045”},“ready”:true}}
2024-04-11 17:18:50:852 - [Chromedriver@d7bf] Starting W3C Chromedriver session with capabilities: {
2024-04-11 17:18:50:852 - [Chromedriver@d7bf] “capabilities”: {
2024-04-11 17:18:50:852 - [Chromedriver@d7bf] “alwaysMatch”: {
2024-04-11 17:18:50:852 - [Chromedriver@d7bf] “goog:chromeOptions”: {
2024-04-11 17:18:50:852 - [Chromedriver@d7bf] “androidPackage”: “com.xxxx.yyyy”,
2024-04-11 17:18:50:852 - [Chromedriver@d7bf] “androidUseRunningApp”: true,
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] “androidProcess”: “com.xxxx.yyyy”,
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] “androidDeviceSerial”: “emulator-5554”
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] },
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] “goog:loggingPrefs”: {
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] “browser”: “ALL”
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] }
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] }
2024-04-11 17:18:50:853 - [Chromedriver@d7bf] }
2024-04-11 17:18:50:854 - [Chromedriver@d7bf] }
2024-04-11 17:18:50:854 - [Chromedriver@d7bf] Matched ‘/session’ to command name ‘createSession’
2024-04-11 17:18:50:854 - [Chromedriver@d7bf] Proxying [POST /session] to [POST http://127.0.0.1:62173/session] with body: {“capabilities”:{“alwaysMatch”:{“goog:chromeOptions”:{“androidPackage”:“com.xxxx.yyyy”,“androidUseRunningApp”:true,“androidProcess”:“com.xxxx.yyyy”,“androidDeviceSerial”:“emulator-5554”},“goog:loggingPrefs”:{“browser”:“ALL”}}}}
2024-04-11 17:18:50:857 - [Chromedriver@d7bf] Chromedriver exited unexpectedly with code 1, signal null
2024-04-11 17:18:50:859 - [Chromedriver@d7bf] Changed state to ‘stopped’
2024-04-11 17:18:50:861 - [Chromedriver@d7bf] Got response with status 500: {“value”:{“error”:“unknown error”,“message”:“unknown error: Device emulator-5554 is already in use”,“stacktrace”:“Backtrace:\n\tGetHandleVerifier [0x00AC8893+48451]\n\t(No symbol) [0x00A5B8A1]\n\t(No symbol) [0x00965058]\n\t(No symbol) [0x0095339E]\n\t(No symbol) [0x00980540]\n\t(No symbol) [0x0097FFA8]\n\t(No symbol) [0x009B0798]\n\t(No symbol) [0x009B047C]\n\t(No symbol) [0x009AA0B6]\n\t(No symbol) [0x00987E08]\n\t(No symbol) [0x00988F2D]\n\tGetHandleVerifier [0x00D28E3A+2540266]\n\tGetHandleVerifier [0x00D68959+2801161]\n\tGetHandleVerifier [0x00D6295C+2776588]\n\tGetHandleVerifier [0x00B52280+612144]\n\t(No symbol) [0x00A64F6C]\n\t(No symbol) [0x00A611D8]\n\t(No symbol) [0x00A612BB]\n\t(No symbol) [0x00A54857]\n\tBaseThreadInitThunk [0x7579FCC9+25]\n\tRtlGetAppContainerNamedObjectPath [0x77117C5E+286]\n\tRtlGetAppContainerNamedObjectPath [0x77117C2E+238]\n”}}
2024-04-11 17:18:50:861 - [W3C] Matched W3C error code ‘unknown error’ to UnknownError
2024-04-11 17:18:50:864 - [Chromedriver@d7bf] UnknownError: An unknown server-side error occurred while processing the command. Original error: unknown error: Device emulator-5554 is already in use

I have all updated to the latest version (appium server, uiautomator2, I tried with several versions of chromedriver (also the last one 123)…
Anybody can give me a hand on this?

Thanks!