Appium проверява дали елементът е показан

Използвам 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

Как мога да проверя дали даден елемент е на екрана?


person david    schedule 07.11.2018    source източник


Отговори (2)


Можете да опитате това, надявам се да помогне

//Ако елементът е намерен, направете каквото искате

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!");
        }
person Al Imran    schedule 08.11.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;
    }
}
person Suban Dhyako    schedule 07.11.2018
comment
Трябва да използвате примерния локатор на оригиналния плакат във вашия пример. Трябва също така да имате предвид, че въпреки че трябва да има блок try/catch, вие не проверявате за конкретни изключения, така че всяко изключение може да бъде подвеждащо и да причини проблеми с отстраняването на грешки при определени обстоятелства, особено след като вашият пример не показва обработка на изключения при всичко. - person Bill Hileman; 07.11.2018