Проверка Appium, отображается ли элемент - PullRequest
0 голосов
/ 07 ноября 2018

Я использую Appium для Android

следующие работы для нажатия на элемент

driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).click();

Но я пытаюсь проверить, есть ли элемент на экране, и я попробовал следующее

if (driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed()) {
    System.out.println("FOUND");
} else {
    System.out.println("NOT FOUND!");
}

но возвращается исключение, говорящее

INFO: HTTP Status: '405' -> incorrect JSON status mapping for 'unknown error' (500 expected)
org.openqa.selenium.WebDriverException: Method is not implemented

Как проверить, есть ли элемент на экране?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Вы можете попробовать это, надеюсь, это поможет

// Если элемент найден, делай как хочешь

if (driver.findElements(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).size() > 0) {
            System.out.println("FOUND");
        } else {
            System.out.println("NOT FOUND!");
        }
0 голосов
/ 07 ноября 2018

вы можете окружить ваш код блоком try catch.

public boolean isElementDisplayed(){
    try{
        return driver.findElement(By.xpath("//*[@resource-id='com.app.android:id/prelogin_signup']")).isDisplayed();
        }
    }catch(Exception e){
        //System.out.println(e);
        return false;
    }
}

Вы также можете сделать универсальную функцию , чтобы проверить, отображается ли элемент.

public boolean isElementDisplayed(MobileElement element){
    try{
        return element.isDisplayed();
        }
    }catch(Exception e){
        //System.out.println(e);
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...