我正在尝试使用assert函数检查元素是否在屏幕上。 我正在将Appium和Java用于我的测试应用程序(AndroidDriver)。 我期望的是,如果元素在屏幕上,则返回1,否则返回0。 当我尝试这个时;
assert driver.findElementById("com.tmob.AveaOIM:id/layout_ayarlar_ovit").isDisplayed() : "It is not on the screen";
isDisplayed()是一个布尔函数,但由于
而无效NoSuchElementException:无法在页面上找到元素 使用给定的搜索参数。
如何使用断言检查此元素?
答案 0 :(得分:1)
尝试使用以下代码:
driver.findElementById("layout_ayarlar_ovit").isDisplayed()
答案 1 :(得分:0)
我遇到了同样的问题并将其用作解决方法
我建议你应该使用页面工厂 把它作为构造函数
public constructorName(){ PageFactory.initElements(driver,this);}
@FindBy(的xpath =" //&#34)
私有WebElement anyName;
如果(anyname.isDisplayed){
System.out.println("元素存在"); }
答案 2 :(得分:0)
在isTrue变量(或您的首选项的名称)中分配返回值,并在下一行中使用assert和消息:
boolean isTrue = driver.findElementById(“com.tmob.AveaOIM:id / layout_ayarlar_ovit”)。isDisplayed(); Assert.assertTrue(true,isTrue,“找不到元素”);
如果断言失败,输出将是“找不到元素” 如果断言通过,则测试将继续到下一行。
答案 3 :(得分:0)
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());