Windows Hybrid App automation

I have to automate Hybrid windows app where login page is native and dashboard after login is web application.
I have tried to changing the context but that’s not working out, it says invalid method. When we tried to get source code of the dashboard using Windowsdriver it gives us login page source code. Can someone please help me to fix this.

Following the suggestion given here http://appium.io/docs/en/writing-running-appium/web/hybrid/
Getting below exception when trying to get context using
Set contextNames = driver.getContextHandles();

[RemoteTestNG] detected TestNG version 6.14.3
Jul 26, 2018 12:34:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Checking with right credentials
Taking Screenshot - right credentials
org.openqa.selenium.WebDriverException: Returned value cannot be converted to List: {error=unknown command, message=Could not proxy command to remote server. Original error: 404 - “{“status”:9,“value”:{“error”:“unknown command”,“message”:“Command not recognized: GET: /session/B40E8892-EF88-4D2E-949F-0EDA77B57A67/contexts”}}”, stacktrace=UnknownCommandError: Could not proxy command to remote server. Original error: 404 - “{“status”:9,“value”:{“error”:“unknown command”,“message”:“Command not recognized: GET: /session/B40E8892-EF88-4D2E-949F-0EDA77B57A67/contexts”}}”
at errorFromW3CJsonCode (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:784:12)
at ProxyRequestError.getActualError (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:676:14)
at asyncHandler$ (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:354:25)
at tryCatch (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:136:37)
at }
Build info: version: ‘3.6.0’, revision: ‘6fbf3ec767’, time: ‘2017-09-27T15:28:36.4Z’
System info: host: ‘localhost.localdomain’, ip: ‘127.0.0.1’, os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘3.10.0-693.21.1.el7.x86_64’, java.version: ‘1.8.0_121’
Driver info: driver.version: AppiumDriver
at io.appium.java_client.AppiumDriver.getContextHandles(AppiumDriver.java:209)
at com.cloudbreak.drivers.impl.windows.WindowsTest.testLoginWithCorrectCredentials(WindowsTest.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.ClassCastException: com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to java.util.List
at io.appium.java_client.AppiumDriver.getContextHandles(AppiumDriver.java:206)
… 26 more

Regards,
Shailesh

Windows driver does not support context switching.

Then how we can do windows Hybrid app automation using appium

Probably, use two different drivers at the same time (Appium+Selenium)