检查元素是否在屏幕上与断言,NoSuchElementException发生
问题描述:
我试图通过使用断言功能来检查一个元素是否在屏幕上。 我使用Appium和Java来测试应用程序(AndroidDriver)。 我期望的是如果元素在屏幕上返回1,否则返回0。 当我尝试这个;检查元素是否在屏幕上与断言,NoSuchElementException发生
assert driver.findElementById("com.tmob.AveaOIM:id/layout_ayarlar_ovit").isDisplayed() : "It is not on the screen";
isDisplayed()是一个布尔函数,但它不工作,因为的
NoSuchElementException异常:一个元素找不到 在页面上使用给定的搜索参数。
我该如何检查这个元素与assert?
答
尝试使用下面的代码:
driver.findElementById("layout_ayarlar_ovit").isDisplayed()
答
我也面临着同样的问题,并以此为工作四处
我建议你应该使用页面工厂 把这个作为构造
public constructorName(){ PageFactory.initElements(driver,this);}
@FindBy(xpath =“//”)
private WebElement anyName;
如果(anyname.isDisplayed){
的System.out.println( “元素存在”); }
答
分配在IsTrue运算变量(您喜欢的或名称)的返回值,并在下一行使用与消息断言:
布尔IsTrue运算= driver.findElementById(“com.tmob.AveaOIM:ID/layout_ayarlar_ovit “)。被展示(); Assert.assertTrue(true,isTrue,“无法定位元素”);
如果断言失败,输出将为“定位元素失败” 如果断言通过,测试将继续到下一行。