Java 使用assert检查元素是否在屏幕上,未发生任何TouchElementException
我试图使用assert函数检查屏幕上是否有元素。 我正在使用Appium和Java来测试应用程序(AndroidDriver)。 如果元素在屏幕上,我期望返回1,否则返回0。 当我尝试这个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 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());