.getText () возвращает NullPointerException в тесте автоматизации реального устройства - PullRequest
0 голосов
/ 13 сентября 2018

Каждый раз, когда я использую driver.findElement(By.anything("")).getText();, я получаю NullPointerException. На андроид тестирование реального устройства.

  • Аппиум 1.8.1
  • Samsung S8
  • ChromeDriver 2.38
  • ChromeBrowser Последний

Ниже приведен код из моей тестовой базы для инициализации драйвера, может быть там проблема? Недостающая часть кода предназначена для инициализации Driver.

    if (driver == null) {
        switch (prop.getProperty("browser")) {
        case "chrome":
            System.setProperty("webdriver.chrome.driver", prop.getProperty("chrome.driver.path"));
            driver = new ChromeDriver();
            break;
        default:
            System.out.println("Wrong driver was chosen! Plsease choose the driver.");
        }

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
    }
    return driver;
}
public static AndroidDriver<MobileElement> initializeMobileDriver() {
    if (Mdriver == null) {
    switch (prop.getProperty("MobileBrowser")) {
        case "android":
            capabilities = DesiredCapabilities.android();
            capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, BrowserType.CHROME);
            capabilities.setCapability("autoGrantPermissions", "true"); 
            capabilities.setCapability(MobileCapabilityType.SUPPORTS_FINDING_BY_CSS, true);
            capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, prop.getProperty("DeviceName"));
            capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, prop.getProperty("AppiumVersion"));
            capabilities.setCapability(MobileCapabilityType.PLATFORM, Platform.ANDROID);
            capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, prop.getProperty("PlatformName"));
            capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, prop.getProperty("PlatformVersion"));
            capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, prop.getProperty("DeviceName"));
            capabilities.setCapability("autoAcceptAlerts", "true");
            try {
                Mdriver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
                driver = Mdriver;
            } catch (Exception e) {
                System.out.println(" error is " + e.getMessage());
            }
            break;
        default:
            System.out.println("Wrong driver was chosen! Plsease choose the driver.");
        }
    }
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    return Mdriver;
}

Можно использовать любой код, простой код, и он возвращает ноль.

@ Test public static void SimpleGetTextTest () {

    driver.get("https://google.com")

    driver.findElement(By.name("q")).sendKeys("Java"+Keys.ENTER);

    driver.findElement(By.xpath("//div[@class = 'MUxGbd']")).getText();

Возвращает NullPointerException

1 Ответ

0 голосов
/ 20 сентября 2018

Я исправил проблему.

В принципе, как вы можете видеть в коде, который я использовал, Mdriver = новый AndroidDriver (новый URL-адрес ("http://0.0.0.0:4723/wd/hub"), возможностей); где AndroidDriver = Mdriver; * 1005"*

Я изменяю его на RemoteDriver в обоих случаях, и все начинает работать. Надеюсь, это поможет

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