Java 使用assert检查元素是否在屏幕上,未发生任何TouchElementException

Java 使用assert检查元素是否在屏幕上,未发生任何TouchElementException,java,selenium,appium,assert,Java,Selenium,Appium,Assert,我试图使用assert函数检查屏幕上是否有元素。 我正在使用Appium和Java来测试应用程序(AndroidDriver)。 如果元素在屏幕上,我期望返回1,否则返回0。 当我尝试这个 assert driver.findElementById("com.tmob.AveaOIM:id/layout_ayarlar_ovit").isDisplayed() : "It is not on the screen"; isDisplayed()是一个布尔函数,但由于 NoTouchElemen

我试图使用assert函数检查屏幕上是否有元素。 我正在使用Appium和Java来测试应用程序(AndroidDriver)。 如果元素在屏幕上,我期望返回1,否则返回0。 当我尝试这个

assert driver.findElementById("com.tmob.AveaOIM:id/layout_ayarlar_ovit").isDisplayed() : "It is not on the screen";
isDisplayed()是一个布尔函数,但由于

NoTouchElementException:在页面上找不到元素 使用给定的搜索参数

如何使用assert检查此元素?

尝试使用以下代码:

driver.findElementById("layout_ayarlar_ovit").isDisplayed() 

我也遇到过同样的问题,并以此作为解决办法

我建议您使用PageFactory 把它作为构造函数

公共构造函数名称(){ PageFactory.initElements(驱动程序,this);}

@FindBy(xpath=“/”)

私有WebElement anyName

如果(显示anyname.isplayed){

System.out.println(“元素存在”);
}

在isTrue变量(或您的首选项名称)中指定返回值,并在下一行使用带有消息的断言:

boolean isTrue=driver.findElementById(“com.tmob.AveaOIM:id/layout_ayarlar_ovit”).isDisplayed(); Assert.assertTrue(true,isTrue,“未能定位元素”)

如果断言失败,输出将为“定位元素失败” 若断言通过,测试将继续到下一行

try {
  driver.findElement(By.xpath("com.tmob.AveaOIM:id/layout_ayarlar_ovit"));
}catch (java.util.NoSuchElementException e) {
  Assert.fail("Error on Page:element not found");
}
Assert.assertTrue(  driver.findElement(By.xpath("com.tmob.AveaOIM:id/layout_ayarlar_ovit")).isDisplayed());