如何使用Java检查SeleniumWebDriver中的必填字段是否为空?
我正在研究“添加新用户表单”。在此表单中,有几个必填字段。当任何必填字段为空时,将不提交表单,并显示一条验证消息,如:“值为必填项,不能为空”。我如何检查/自动执行表单字段是否为空?您可以使用try-catch使用如何使用Java检查SeleniumWebDriver中的必填字段是否为空?,java,eclipse,selenium-webdriver,junit4,assertion,Java,Eclipse,Selenium Webdriver,Junit4,Assertion,我正在研究“添加新用户表单”。在此表单中,有几个必填字段。当任何必填字段为空时,将不提交表单,并显示一条验证消息,如:“值为必填项,不能为空”。我如何检查/自动执行表单字段是否为空?您可以使用try-catch使用assert检查强制字段警报是否出现 try { assertEquals("Value is required and can't be empty", driver.findElement(By.xpath("XPATH_OF_LABLE")).getText()); } ca
assert
检查强制字段警报是否出现
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,但您可以使用任何其他定位器方法进行此操作。方式1:
首先,编写以下方法:
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());
}
}
使用
SoftAssert
通过单个@Test
注释验证表单中的所有必填字段。即使任何断言失败,它也将执行下一行,并在最后执行assertAll()
时提供@Test
中捕获的所有异常
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();
第二个更合适,但最后我用了第二个。@NasrinNaher:祝你好运