我需要一些帮助!
请在下面找到我的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等价物来帮助我,我将不胜感激。
干杯 单
答案 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"));