I'm trying to run automate test for windows calculator app on windows10 using Windows application driver (winAppDriver), appium and java as below example: https://github.com/Microsoft/WinAppDriver/tree/master/Samples/Java/CalculatorTest, but when I run the test after started the appium getting below mentioned error:
org.openqa.selenium.UnsupportedCommandException: The URL '/session' did not map to a valid resource
Command duration or timeout: 204 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'LKXXXX', ip: '10.88.68.53', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: io.appium.java_client.ios.IOSDriver
My code is as below:
import org.junit.*;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.util.concurrent.TimeUnit;
import java.net.URL;
import io.appium.java_client.ios.IOSDriver;
public class CalculatorTest {
private static IOSDriver CalculatorSession = null;
private static WebElement CalculatorResult = null;
@BeforeClass
public static void setup() {
try {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("app", "C:\\Windows\\System32\\calc.exe");
CalculatorSession = new IOSDriver(new URL("http://127.0.0.1:4723"), capabilities);
CalculatorSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
CalculatorSession.findElementByName("Clear").click();
CalculatorSession.findElementByName("Seven").click();
CalculatorResult = CalculatorSession.findElementByName("Display is 7 ");
Assert.assertNotNull(CalculatorResult);
}catch(Exception e){
e.printStackTrace();
} finally {
}
}
}
My Dev Environment
I will be glad if anyone can help me to fix this issue.
Thanks in advance.
After long research, I have found the answer for the above question. We can solve this using two methods.
NOTE: You should start either appium server or winappdriver.exe. Don't try to run both appium and winappdriver at once by your self.
If you are starting appium server, you should give the URI as well as below following by the IP and port;
CalculatorSession = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
If you are running the winappdriver.exe directly, you should give only the IP and the port of winappdriver as below;
CalculatorSession = new IOSDriver(new URL("http://127.0.0.1:4723"), capabilities);