2012-05-31 118 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")); 
相关问题