Попытка нажать на элемент androidDriver на облачном устройстве. Получение ниже трассировки стека.
java.lang.NullPointerException в
org.openqa.selenium.remote.RemoteWebElement.execute (RemoteWebElement.java:276)
в
org.openqa.selenium.remote.RemoteWebElement.isDisplayed (RemoteWebElement.java:317)
в browserStack.TestAppLaunch.launchApp (TestAppLaunch.java:23) в
sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
в
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.lang.reflect.Method.invoke (Method.java:498) в
org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108)
в org.testng.internal.Invoker.invokeMethod (Invoker.java:661) в
org.testng.internal.Invoker.invokeTestMethod (Invoker.java:869) в
org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1193) в
org.testng.internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java:126)
в
org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109)
в org.testng.TestRunner.privateRun (TestRunner.java:744) в
org.testng.TestRunner.run (TestRunner.java:602) в
org.testng.SuiteRunner.runTest (SuiteRunner.java:380) в
org.testng.SuiteRunner.access $ 000 (SuiteRunner.java:39) в
org.testng.SuiteRunner $ SuiteWorker.run (SuiteRunner.java:414) в
org.testng.internal.thread.ThreadUtil $ 1.call (ThreadUtil.java:52) в
java.util.concurrent.FutureTask.run (FutureTask.java:266) в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run (Thread.java:745)
public AndroidDriver<?> bsAndroidDriver;
@SuppressWarnings({ "unchecked", "rawtypes" })
@BeforeTest
@org.testng.annotations.Parameters(value = { "deviceName" })
public void startAndroidDriver(String deviceName) throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
JSONParser parser = new JSONParser();
JSONObject config = (JSONObject) parser.parse(new FileReader(Constants.TEST_BROWSER_STACK_MOBILE_PROPERTIES_FILE_PATH));
JSONObject devices = (JSONObject) config.get("devices");
String userName = (String) config.get("user");
String accessKey = (String) config.get("key");
Map<String, String> deviceCapabilities = (Map<String, String>) devices.get(deviceName);
Iterator<?> it = deviceCapabilities.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
capabilities.setCapability(pair.getKey().toString(), pair.getValue().toString());
}
Map<String, String> commonCapabilities = (Map<String, String>) config.get("androidCapabilities");
it = commonCapabilities.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
if (capabilities.getCapability(pair.getKey().toString()) == null) {
capabilities.setCapability(pair.getKey().toString(), pair.getValue().toString());
}
}
bsAndroidDriver = new AndroidDriver<>(new URL("http://" + userName + ":" + accessKey + "@" + config.get("server") + "/wd/hub"), capabilities);
bsAndroidDriver.findElement(By.xpath("xpath_of_obj_given")).click();
> - Ошибка на этом шаге!
Примечание. Приложение успешно запущено. Также xpath выглядит нормально. Проверено локально. Данный тест проводится на облачном устройстве Android.
Репозиторий Maven используется-
Селен-Ява, 3.14.0
testng, 6.11
java-клиент, 4.1.2