1

我需要一些帮助!

请在下面找到我的 selenium IDE 代码,该代码在转换为 webdriver 代码时给了我// 错误:捕获异常 [错误:不支持的命令 [isTextPresent]]

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

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

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

干杯山

4

2 回答 2

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"));
于 2012-09-21T12:16:36.400 回答
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"));
于 2012-05-31T14:26:04.303 回答