我目前正在编写测试,我想知道是否有办法断言文本框是空的。
该测试用于注销命令,用于清除数据"而不是记住您的电子邮件或用户名。我对此测试进行建模的方式包括测试登录,注销以及我遇到的部分 - 声明注销后登录屏幕上的电子邮件文本框为空。
我尝试过这样的事情:
if (driver.findElement(By.cssSelector("input[type=\"text\"]").equals(""))) {
// This will throw an exception
}
但这并不起作用,因为这些论点都没有被接受。
有什么想法吗?
答案 0 :(得分:2)
我认为你需要获得value
属性:
WebElement myInput = driver.findElement(By.cssSelector("input[type=\"text\"]"));
if (!myInput.getAttribute("value").equals("")) {
fail()
}
答案 1 :(得分:2)
上一个答案有效,但断言可以更清晰。断言应该总是给出一些合理的信息。下面是使用JUnit assertThat和hamcrest匹配器的示例。
import org.junit.Assert;
import static org.hamcrest.Matchers.isEmptyString;
...
WebElement myInput = driver.findElement(By.cssSelector("input[type=\"text\"]"));
Assert.assertThat(myInput.getAttribute("value"), isEmptyString());
或者更好的是,给出一个理由信息:
Assert.assertThat("Field should be empty", myInput.getAttribute("value"), isEmptyString());