2012-05-31 51 views
1

我需要一些幫助!對於selenium IDE命令'assertTextNotPresent',webdriver等價於什麼?

請在下面找到它時轉換爲代碼的webdriver我硒IDE的代碼給我//錯誤:捕獲的異常[錯誤:不支持的命令[isTextPresent]

<tr> 
    <td>assertTextNotPresent</td> 
    <td>//*[@id='collapseComment']/div/div/div[2]/label</td> 
    <td>Max. 3072 characters</td> 
</tr> 

基本上我想我的測試失敗如果它發現文本字符串'Max。 3072個字符'在運行期間在頁面上

我將不勝感激,如果有人可以請幫助我通過提供Java的等價物,我可以使用。

乾杯 山

回答

0

你沒有說什麼斷言/單元測試框架,您使用的,但是這是在C#和NUnit:

IWebDriver firefoxDriver = new FirefoxDriver(); 
IWebElement element = firefoxDriver.FindElement(By.XPath("//*[@id='collapseComment']/div/div/div[2]/label")); 
Assert.IsFalse(element.Text.Contains("Max. 3072 characters")); 
+0

我使用TestNG和Java的。 如果你能告訴我什麼是使用testNg框架的java等價物,我將不勝感激。 – user929258

3

我首先看到的是IDE assertTextNotPresent命令不接受目標和值。它只需要一個包含正在搜索的文本模式的目標。目前,您的測試聲稱「// * [@ id ='collapseComment']/div/div/div [2]/label」的文本不在頁面上的任何位置。

如果使用assertNotText的IDE命令,它將正常工作。 assertNotText需要在目標中定位器和一個值進行比較。當您使用IDE導出到Java時,它將正確地轉換assertNotText。

考慮到這一點,在Java中使用JUnit 4的答案是:

WebDriver driver = new FirefoxDriver(); 
... 
WebElement element = driver.FindElement(By.XPath("//*[@id='collapseComment']/div/div/div[2]/label")); 
assertThat("Max. 3072 characters", is(not(element.getText()))); 

assert(false, element.getText().contains("Max. 3072 characters")); 
相關問題