2017-09-13 106 views
0

我試圖通過使用斷言功能來檢查一個元素是否在屏幕上。 我使用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?

回答

0

嘗試使用下面的代碼:

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

我也面臨着同樣的問題,並以此爲工作四處

我建議你應該使用頁面工廠 把這個作爲構造

public constructorName(){ PageFactory.initElements(driver,this);}

@FindBy(xpath =「//」)

private WebElement anyName;

如果(anyname.isDisplayed){

的System.out.println( 「元素存在」); }

0

分配在IsTrue運算變量(您喜歡的或名稱)的返回值,並在下一行使用與消息斷言:

布爾IsTrue運算= driver.findElementById(「com.tmob.AveaOIM:ID/layout_ayarlar_ovit 「)。被展示(); Assert.assertTrue(true,isTrue,「無法定位元素」);

如果斷言失敗,輸出將爲「定位元素失敗」 如果斷言通過,測試將繼續到下一行。