selenium IDE命令'assertTextNotPresent'的webdriver等价物是什么?

时间:2012-05-31 13:27:03

标签: webdriver selenium-ide

我需要一些帮助!

请在下面找到我的selenium IDE代码,转换为webdriver代码后会给我 // ERROR:Caught exception [错误:不支持的命令[isTextPresent]]

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

基本上,如果找到文本字符串' Max,我希望我的测试失败。运行期间页面上有3072个字符'

如果有人能通过提供我可以使用的java等价物来帮助我,我将不胜感激。

干杯 单

2 个答案:

答案 0 :(得分:3)

我看到的第一件事是assertTextNotPresent的IDE命令不接受目标和值。它只需要一个包含正在搜索的文本模式的目标。目前,您的测试断言“// * [@ id ='collapseComment'] / div / div / div [2] / label”的文本不在页面的任何位置。

如果使用assertNotText的IDE命令,它将正常工作。 assertNotText需要目标中的定位器和要比较的值。当您使用IDE导出到Java时,它将正确转换assertNotText。

考虑到这一点,在使用JUnit 4的Java中,答案是:

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"));

答案 1 :(得分: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"));