Я работаю над «добавлением новой формы пользователя». В этой форме есть несколько обязательных полей. Форма не будет отправлена, если какое-либо обязательное поле будет пустым, и будет отображаться сообщение проверки, например: «Значение является обязательным и не может быть пустым». Как я могу проверить / автоматизировать форму, является ли поле пустым или нет?
Как проверить, является ли обязательное поле пустым в Selenium WebDriver с помощью Java?
Ответы (3)
Способ 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());
}
}
person
Ripon Al Wasim
schedule
27.08.2013
2-й предпочтительнее
- person Ripon Al Wasim; 27.08.2013
Но в итоге я использовал второй.
- person Nasrin Naher; 27.08.2013
@NasrinNaher: Удачи
- person Ripon Al Wasim; 27.08.2013
Вы можете использовать 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, но для этого можно использовать любой другой метод локатора.
person
Sankumarsingh
schedule
27.08.2013
Используйте 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();
person
Thangalakshmi
schedule
06.11.2019