在Selenium中断言文本框为空

3

我目前正在编写一项测试,想知道是否有一种方法可以断言文本框为空。

这个测试是针对一个“清除数据”而不是记住您的电子邮件或用户名的注销命令。我模拟了这个测试的方式是先登录,然后注销,最后关键部分——断言在注销后登录屏幕上的电子邮件文本框为空。

我尝试过类似于以下代码的东西:

if (driver.findElement(By.cssSelector("input[type=\"text\"]").equals(""))) {
    // This will throw an exception
}

但是这不起作用,因为参数不被接受。有什么想法吗?
2个回答

3

我认为您需要获取value属性:

WebElement myInput = driver.findElement(By.cssSelector("input[type=\"text\"]"));

if (!myInput.getAttribute("value").equals("")) {
    fail()
}

3

之前的答案可以用更简洁的方式写出断言。断言应该包含一些合理的信息。下面是一个使用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());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接