Исключение нулевого указателя при попытке щелкнуть элемент AndroidDriver [на облачном устройстве] с помощью Appium - PullRequest
0 голосов
/ 11 апреля 2019

Попытка нажать на элемент 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...