Appium检查是否显示元素

时间:2018-11-07 02:23:32

标签: 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

如何检查屏幕上是否有元素?

2 个答案:

答案 0 :(得分:1)

您可以尝试一下,希望对您有帮助

//如果找到了元素,请根据需要进行操作

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!");
        }

答案 1 :(得分:0)

您可以在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;
    }
}