我正在研究“添加新用户表单”。在此表单中,有几个必填字段。当任何必填字段为空时,表单将不会提交,并且会显示一条验证消息,例如:“值是必需的,不能为空”。无论字段是否为空,如何检查/自动化表单?
问问题
17634 次
3 回答
2
方式一:首先编写如下方法:
private boolean isTextPresent(String text){
try{
boolean b = driver.getPageSource().contains(text);
return b;
}
catch(Exception e){
return false;
}
}
现在通过调用上述方法来断言页面上是否存在预期的消息:
assertTrue(isTextPresent("Value is required and can't be empty"), "Msg is absent/wrong/misspelled");
方式2:另一种方式如下:
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
private StringBuffer verificationErrors = new StringBuffer();
try {
assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Value is required and can't be empty[\\s\\S]*$"));
} catch (Error e) {
verificationErrors.append(e.toString());
}
}
于 2013-08-27T10:18:29.757 回答
1
您可以使用assert
try-catch 来检查是否出现强制字段警报
try {
assertEquals("Value is required and can't be empty", driver.findElement(By.xpath("XPATH_OF_LABLE")).getText());
} catch (Error e) {
//code for the case when the texts are not same
verificationErrors.append(e.toString());
}
该示例使用 xpath,但您可以为此使用任何其他定位器方法。
于 2013-08-27T08:51:33.733 回答
1
用于SoftAssert
通过单个@Test
注释验证表单中的所有必填字段。即使任何断言失败,它也会执行下一行,并在最后@Test
执行时为我们提供捕获的所有异常assertAll()
。
driver.findElement(by.id("submit")).click();
SoftAssert softAssert = new SoftAssert();
softAssert.assertEquals(firstname.getText(), "First Name is required");
softAssert.assertEquals(lastname.getText(), "Last Name is required");
softAssert.assertEquals(email.getText(), "Email Address is required");
softAssert.assertAll();
于 2019-11-06T09:42:00.360 回答