2014-03-13 26 views
0

我可以斷言一個不存在的元素嗎?我想斷言網站上不存在元素「textarea」。Assert ElementNotPresent Webdriver

try { 
    assertFalse(isElementPresent(By.cssSelector("textarea"))); 
} catch (Error e) { 
    verificationErrors.append(e.toString()); 
    System.out.println(verificationErrors); 
} 


private boolean isElementPresent(By by) { 
    try { 
     driver.findElement(by); 
     return true; 
    } catch (NoSuchElementException e) { 
     return false; 
    } 
} 
+0

您發佈的代碼不適合您的目的嗎? –

回答

0

方法#1

進口junit.framework.Assert;

如果
{
的System.out.println( 「文件不可用」)(isElementPresent(By.cssSelector( 「文本域」))!);
} else
{
Assert.fail();
}


方法2

在你的情況,請及時與負的情況下使用下面去

陽性病例

進口junit.framework給出。斷言;

boolean b = driver.getPageSource()。contains(「your text」);
Assert.assertTrue(b);

否定的情況下

進口junit.framework.Assert;

boolean b = driver.getPageSource()。contains(「your text」);
Assert.assertFalse(b);

有很多方法可以做到這一點。以上是幾個:)

強烈建議方法#1!

+0

讓我知道如果你有問題 –

+4

通過頁面搜索源是一種非常糟糕和不準確的方式來尋找一個元素。請重新考慮這個答案。 – JimEvans

+0

當然@JimEvans我會很快做出編輯 –

0

你的問題中的代碼應該工作。

另一種方法是調用driver.findElements而不是driver.findElement(注意添加的s)。如果沒有匹配,則不會拋出NoSuchElementException,driver.findElements將返回空列表。從那裏,你只需要聲明返回列表的大小爲零。