Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

io.appium.java_client.NoSuchContextException: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded #2075

Open
dipakkumar1225 opened this issue Nov 16, 2023 · 4 comments

Comments

@dipakkumar1225
Copy link

Description

Now able to switch to WebView.

Environment

  • Java client build version or git revision if you use some snapshot: 2.34.1
  • Appium server version or git revision if you use some snapshot: 2.2.2
  • Desktop OS/version used to run Appium if necessary: Windows 10
  • Node.js version (unless using Appium.app|exe) or Appium CLI or Appium.app|exe: v18.18.0
  • Mobile platform/version under test: Android 13
  • Real device or emulator/simulator: Real Device : Moto Edge 30

Code To Reproduce Issue

protected void switchToWebViewContext() {
	String strWebContextName = ((AndroidDriver)getAppiumDriver()).getContextHandles().stream().filter(ctx -> ctx.contains("WEBVIEW_")).findAny().orElse(null);
	System.out.println("strWebContextName " + strWebContextName);
	if (Objects.nonNull(strWebContextName)) {
		((AndroidDriver) getAppiumDriver()).context(strWebContextName);
		System.out.println("Switched to Web view ");
	}
}

here I am able to get webview context name strWebContextName WEBVIEW_com.xxxxx.xxxxxxx

Exception Stacktraces

io.appium.java_client.NoSuchContextException: An unknown server-side error occurred while processing the command. Original error: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded
Build info: version: '4.15.0', revision: '1d14b5521b'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '15.0.2'
Driver info: io.appium.java_client.android.AndroidDriver
Command: [bddfd85a-6e5e-46c2-842e-1b8371fc128a, switchToContext {name=WEBVIEW_com.xxxx.xxxxuat}]
Capabilities {appium:app: D:\MobiWebAutoFramework\mob..., appium:appActivity: com.xxxx.xxxx.activity..., appium:appPackage: com.xxxx.xxxxuat, appium:autoGrantPermissions: true, appium:autoLaunch: false, appium:automationName: UIAutomator2, appium:chromedriverExecutable: D:\chromedriver-win32\chrom..., appium:chromedriverPort: 10002, appium:clearDeviceLogsOnStart: true, appium:clearSystemFiles: true, appium:databaseEnabled: false, appium:desired: {app: D:\MobiWebAutoFramework\mob..., appActivity: com.xxxx.xxxx.activity..., appPackage: com.xxxx.xxxxuat, autoGrantPermissions: true, autoLaunch: false, automationName: UIAutomator2, chromedriverExecutable: D:\chromedriver-win32\chrom..., chromedriverPort: 10002, clearDeviceLogsOnStart: true, clearSystemFiles: true, ensureWebviewsHavePages: true, fullReset: false, ignoreHiddenApiPolicyError: true, mjpegServerPort: 62920, nativeWebScreenshot: true, newCommandTimeout: 240, noReset: true, platformName: ANDROID, platformVersion: 13, shouldTerminateApp: true, showChromedriverLog: true, systemPort: 10001, udid: ZD222CJSXB, webviewDevtoolsPort: 10901}, appium:deviceApiLevel: 33, appium:deviceManufacturer: motorola, appium:deviceModel: motorola edge 30, appium:deviceName: ZD222CJSXB, appium:deviceScreenDensity: 400, appium:deviceScreenSize: 1080x2400, appium:deviceUDID: ZD222CJSXB, appium:ensureWebviewsHavePages: true, appium:fullReset: false, appium:ignoreHiddenApiPolicyError: true, appium:javascriptEnabled: true, appium:locationContextEnabled: false, appium:mjpegServerPort: 62920, appium:nativeWebScreenshot: true, appium:networkConnectionEnabled: true, appium:newCommandTimeout: 240, appium:noReset: true, appium:pixelRatio: 2.5, appium:platformVersion: 13, appium:shouldTerminateApp: true, appium:showChromedriverLog: true, appium:statBarHeight: 105, appium:systemPort: 10001, appium:takesScreenshot: true, appium:udid: ZD222CJSXB, appium:viewportRect: {height: 2130, left: 0, top: 105, width: 1080}, appium:warnings: {}, appium:webStorageEnabled: false, appium:webviewDevtoolsPort: 10901, platformName: ANDROID}
Session ID: bddfd85a-6e5e-46c2-842e-1b8371fc128a

Link To Appium Logs

https://gist.github.com/dipakkumar1225/e83e2a3c0b2c63a10db070fb489141ff#file-webcontext

@ashwithpoojary98
Copy link
Contributor

@dipakkumar1225 Does an app designed as a hybrid app, Try switching context directly.

@dipakkumar1225
Copy link
Author

@dipakkumar1225 Does an app designed as a hybrid app, Try switching context directly.

@ashwithpoojary98

In application, some parts of the modules are in Webview.

Please explain "Try switching context directly"

@shinobi01
Copy link

shinobi01 commented Mar 21, 2024

facing the same issue, I'm able to see context list by using
((SupportsContextSwitching) world.driver).getContextHandles()
but unable to switch to it via:
((SupportsContextSwitching) world.driver).context("WEBVIEW_xxxxx")
Update:
I found it should be related to Android System WebView version.
I'm able to switch context via 122.0.6261.64, but failed with version 122.0.6261.119
Uninstall Android System WebView updates from Settings works for me.

@ihorbovkit
Copy link

Do we have any updates here? Im having the same with -
Appium v2.5.2
[email protected]
Chrome/123.0.6312.99
Appium_logs.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants