Appium 应用程序检查是否显示元素

Appium 应用程序检查是否显示元素,appium,Appium,我在用安卓的Appium 以下内容适用于单击元素 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(

我在用安卓的Appium

以下内容适用于单击元素

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

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

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

你可以试试这个,希望有帮助

//如果找到元素,请按您的意愿执行

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

您应该在示例中使用原始海报的示例定位器。您还应该考虑,虽然应该有一个Test/catch块,但是您没有检查特定的异常,所以任何异常都可能会误导,并且在某些情况下会导致调试问题,尤其是因为您的示例根本没有显示任何异常处理。