Open
Description
When using JUnit with the Calculator Java sample everything works as expected but when changing to TestNG I receive a Session Not Created Exception and on Windows Application Driver Log I receive Http/1.1 404 not found.
My Test Code
import io.appium.java_client.windows.WindowsDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.AssertJUnit;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.net.URL;
import java.util.concurrent.TimeUnit;
public class CalculatorTest {
private static WindowsDriver CalculatorSession = null;
private static WebElement CalculatorResult = null;
@BeforeClass
public static void setup() {
try {
DesiredCapabilities capabilities = new DesiredCapabilities();
// capabilities.setCapability("platformName", "Windows");
// capabilities.setCapability("deviceName", "WindowsPC");
capabilities.setCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");
CalculatorSession = new WindowsDriver(new URL("http://127.0.0.1:4723/"), capabilities);
CalculatorSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
CalculatorResult = CalculatorSession.findElementByAccessibilityId("CalculatorResults");
AssertJUnit.assertNotNull(CalculatorResult);
}catch(Exception e){
e.printStackTrace();
} finally {
}
}
@BeforeMethod()
public void Clear()
{
CalculatorSession.findElementByName("Clear").click();
AssertJUnit.assertEquals("0", _GetCalculatorResultText());
}
@AfterClass
public static void TearDown()
{
CalculatorResult = null;
if (CalculatorSession != null) {
CalculatorSession.quit();
}
CalculatorSession = null;
}
@Test
public void Addition()
{
CalculatorSession.findElementByName("One").click();
CalculatorSession.findElementByName("Plus").click();
CalculatorSession.findElementByName("Seven").click();
CalculatorSession.findElementByName("Equals").click();
AssertJUnit.assertEquals("8", _GetCalculatorResultText());
}
@Test
public void Combination()
{
CalculatorSession.findElementByName("Seven").click();
CalculatorSession.findElementByName("Multiply by").click();
CalculatorSession.findElementByName("Nine").click();
CalculatorSession.findElementByName("Plus").click();
CalculatorSession.findElementByName("One").click();
CalculatorSession.findElementByName("Equals").click();
CalculatorSession.findElementByName("Divide by").click();
CalculatorSession.findElementByName("Eight").click();
CalculatorSession.findElementByName("Equals").click();
AssertJUnit.assertEquals("8", _GetCalculatorResultText());
}
@Test
public void Division()
{
CalculatorSession.findElementByName("Eight").click();
CalculatorSession.findElementByName("Eight").click();
CalculatorSession.findElementByName("Divide by").click();
CalculatorSession.findElementByName("One").click();
CalculatorSession.findElementByName("One").click();
CalculatorSession.findElementByName("Equals").click();
AssertJUnit.assertEquals("8", _GetCalculatorResultText());
}
@Test
public void Multiplication()
{
CalculatorSession.findElementByName("Nine").click();
CalculatorSession.findElementByName("Multiply by").click();
CalculatorSession.findElementByName("Nine").click();
CalculatorSession.findElementByName("Equals").click();
AssertJUnit.assertEquals("81", _GetCalculatorResultText());
}
@Test
public void Subtraction()
{
CalculatorSession.findElementByName("Nine").click();
CalculatorSession.findElementByName("Minus").click();
CalculatorSession.findElementByName("One").click();
CalculatorSession.findElementByName("Equals").click();
AssertJUnit.assertEquals("8", _GetCalculatorResultText());
}
protected String _GetCalculatorResultText()
{
// trim extra text and whitespace off of the display value
return CalculatorResult.getText().replace("Display is", "").trim();
}
}
`
"C:\Program Files\Java\jdk1.8.0_212\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\lib\idea_rt.jar=59829:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\plugins\testng\lib\testng-plugin.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_212\jre\lib\rt.jar;C:\Users\sahmed248\IdeaProjects\WinAppDriver\Samples\Java\CalculatorTest\target\test-classes;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-java\4.0.0-alpha-1\selenium-java-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\4.0.0-alpha-1\selenium-chrome-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\4.0.0-alpha-1\selenium-remote-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\net\bytebuddy\byte-buddy\1.9.12\byte-buddy-1.9.12.jar;C:\Users\sahmed248\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\sahmed248\.m2\repository\com\google\guava\guava\27.1-jre\guava-27.1-jre.jar;C:\Users\sahmed248\.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\sahmed248\.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\sahmed248\.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\Users\sahmed248\.m2\repository\org\checkerframework\checker-qual\2.5.2\checker-qual-2.5.2.jar;C:\Users\sahmed248\.m2\repository\com\google\errorprone\error_prone_annotations\2.2.0\error_prone_annotations-2.2.0.jar;C:\Users\sahmed248\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\sahmed248\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.17\animal-sniffer-annotations-1.17.jar;C:\Users\sahmed248\.m2\repository\com\squareup\okhttp3\okhttp\3.14.0\okhttp-3.14.0.jar;C:\Users\sahmed248\.m2\repository\com\squareup\okio\okio\1.17.2\okio-1.17.2.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.0.0-alpha-1\selenium-edge-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-firefox-xpi-driver\4.0.0-alpha-1\selenium-firefox-xpi-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\4.0.0-alpha-1\selenium-firefox-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\4.0.0-alpha-1\selenium-ie-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\4.0.0-alpha-1\selenium-opera-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\4.0.0-alpha-1\selenium-safari-driver-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-support\4.0.0-alpha-1\selenium-support-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\org\testng\testng\6.14.3\testng-6.14.3.jar;C:\Users\sahmed248\.m2\repository\com\beust\jcommander\1.72\jcommander-1.72.jar;C:\Users\sahmed248\.m2\repository\org\apache-extras\beanshell\bsh\2.0b6\bsh-2.0b6.jar;C:\Users\sahmed248\.m2\repository\io\appium\java-client\7.1.0\java-client-7.1.0.jar;C:\Users\sahmed248\.m2\repository\org\seleniumhq\selenium\selenium-api\4.0.0-alpha-1\selenium-api-4.0.0-alpha-1.jar;C:\Users\sahmed248\.m2\repository\com\google\code\gson\gson\2.8.5\gson-2.8.5.jar;C:\Users\sahmed248\.m2\repository\org\apache\httpcomponents\httpclient\4.5.8\httpclient-4.5.8.jar;C:\Users\sahmed248\.m2\repository\org\apache\httpcomponents\httpcore\4.4.11\httpcore-4.4.11.jar;C:\Users\sahmed248\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\sahmed248\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\Users\sahmed248\.m2\repository\cglib\cglib\3.2.10\cglib-3.2.10.jar;C:\Users\sahmed248\.m2\repository\org\ow2\asm\asm\7.0\asm-7.0.jar;C:\Users\sahmed248\.m2\repository\org\apache\ant\ant\1.10.3\ant-1.10.3.jar;C:\Users\sahmed248\.m2\repository\org\apache\ant\ant-launcher\1.10.3\ant-launcher-1.10.3.jar;C:\Users\sahmed248\.m2\repository\commons-validator\commons-validator\1.6\commons-validator-1.6.jar;C:\Users\sahmed248\.m2\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;C:\Users\sahmed248\.m2\repository\commons-digester\commons-digester\1.8.1\commons-digester-1.8.1.jar;C:\Users\sahmed248\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\sahmed248\.m2\repository\org\apache\commons\commons-lang3\3.9\commons-lang3-3.9.jar;C:\Users\sahmed248\.m2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;C:\Users\sahmed248\.m2\repository\org\springframework\spring-context\5.1.6.RELEASE\spring-context-5.1.6.RELEASE.jar;C:\Users\sahmed248\.m2\repository\org\springframework\spring-aop\5.1.6.RELEASE\spring-aop-5.1.6.RELEASE.jar;C:\Users\sahmed248\.m2\repository\org\springframework\spring-beans\5.1.6.RELEASE\spring-beans-5.1.6.RELEASE.jar;C:\Users\sahmed248\.m2\repository\org\springframework\spring-core\5.1.6.RELEASE\spring-core-5.1.6.RELEASE.jar;C:\Users\sahmed248\.m2\repository\org\springframework\spring-jcl\5.1.6.RELEASE\spring-jcl-5.1.6.RELEASE.jar;C:\Users\sahmed248\.m2\repository\org\springframework\spring-expression\5.1.6.RELEASE\spring-expression-5.1.6.RELEASE.jar;C:\Users\sahmed248\.m2\repository\org\aspectj\aspectjweaver\1.9.3\aspectjweaver-1.9.3.jar;C:\Users\sahmed248\.m2\repository\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1.3\plugins\testng\lib\jcommander-1.27.jar" org.testng.RemoteTestNGStarter -usedefaultlisteners false -socket59828 @w@C:\Users\sahmed248\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\sahmed248\AppData\Local\Temp\idea_testng.tmp
org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: Unable to parse remote response:
Build info: version: '4.0.0-alpha-1', revision: 'd1d3728cae', time: '2019-04-24T13:42:21'
System info: host: 'GB5CG924478L', ip: '10.240.199.116', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_212'
Driver info: driver.version: WindowsDriver
at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:208)
at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:217)
at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:577)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:211)
at io.appium.java_client.AppiumDriver.startSession(AppiumDriver.java:323)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:37)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:86)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:96)
at io.appium.java_client.windows.WindowsDriver.<init>(WindowsDriver.java:42)
at CalculatorTest.setup(CalculatorTest.java:39)
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.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
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.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: java.lang.reflect.InvocationTargetException
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 io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:186)
... 36 more
Caused by: org.openqa.selenium.WebDriverException: Unable to parse remote response:
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:115)
... 41 more
Caused by: org.openqa.selenium.json.JsonException: Expected to read a START_MAP but instead have: END. Last 0 characters read:
Build info: version: '4.0.0-alpha-1', revision: 'd1d3728cae', time: '2019-04-24T13:42:21'
System info: host: 'GB5CG924478L', ip: '10.240.199.116', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_212'
Driver info: driver.version: WindowsDriver
at org.openqa.selenium.json.JsonInput.expect(JsonInput.java:293)
at org.openqa.selenium.json.JsonInput.beginObject(JsonInput.java:223)
at org.openqa.selenium.json.MapCoercer.lambda$apply$1(MapCoercer.java:64)
at org.openqa.selenium.json.JsonTypeCoercer.lambda$null$6(JsonTypeCoercer.java:145)
at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:126)
at org.openqa.selenium.json.Json.toType(Json.java:69)
at org.openqa.selenium.json.Json.toType(Json.java:55)
at org.openqa.selenium.json.Json.toType(Json.java:50)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:112)
... 41 more
java.lang.NullPointerException
at CalculatorTest.Clear(CalculatorTest.java:54)
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.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:523)
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.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Test ignored.
Test ignored.
Test ignored.
Test ignored.
Test ignored.
===============================================
Test Suit
Total tests run: 5, Failures: 0, Skips: 5
Configuration Failures: 1, Skips: 5
===============================================
Process finished with exit code 0