Краткая версия: У меня есть обязательное поле, элемент, который отображает «это поле является обязательным», может содержать более одного сообщения.Я изо всех сил пытаюсь настроить свой шаг, страницу и файл функции BDD, чтобы убедиться, что отображается правильное сообщение.
Длинная версия: относительно новая для Java / Selenium и новая для этой формы тестирования BDD Automation,но мне вручили эти рамки и пыхтят.Я добавил шаг в сценарий, так как было несколько полей, которые были второстепенными, но это не было проверено.
Сайт, для которого он находится в разработке, будет иметь более 20 региональных версий, поэтому япытался свести к минимуму любые жесткие связи /
Сценарий
Scenario: 'Do you want to Join an Existing Company?' is an optional radio button selection field which displays 'Company Account Number' and 'Company Name' fields if the 'Yes' option is selected and is defaulted to option 'No'
Given The user is on the Lite Registration page
Than The 'Do you want to Join an Existing Company' radio button selection field is displayed
And the default selection is 'No'
And 'Company Account Number' and 'Company Name' fields are displayed for selection 'Yes'
And A 'Join request' message is displayed for a selection of 'Yes'
And 'Company Account Number' is a numeric field with max 30 char
And 'Company Name' is an alphanumeric filed with max 60 char
And 'Company Account Number' and 'Company Name' are mandatory fields <-- My new step
Проблема заключается в элементе, который содержит сообщение об ошибке (которое является "Этополе обязательно для заполнения. ') также отображает другие сообщения, поэтому я не могу просто подтвердить, что отображается элемент с ошибкой.
Я пытался что-то сделать с утверждениями и командой .getText для этого элементано я либо пропускаю, когда не должен, либо этот шаг игнорируется с ошибкой подтверждения.
Соответствующие части файла подкачки
@FindBy(css = "#accountNumber-error")
private WebElement JECAccountNumberCharError;
//Methods
public boolean Try1() {
String m = JECAccountNumberCharError.getText();
return m.equals("This field is required");
} here
Соответствующие части файла шага
@And("^'Company Account Number' and 'Company Name' are mandatory fields$")
public void companyAccountNumberAndCompanyNameAreMandatoryFields() throws Throwable {
Assert.assertTrue(liteRegistration_page.Try1());
}
в вышеприведенном случае тест игнорируется с ошибкой подтверждения в выходных данных
> java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertTrue(Assert.java:52)
at steps.registration.LiteRegistration_Steps.companyAccountNumberAndCompanyNameAreMandatoryFields(LiteRegistration_Steps.java:481)
at ✽.And 'Company Account Number' and 'Company Name' are mandatory fields(Registration/LiteRegistration_FeildValidation.feature:78)
Я лаю не то дерево с решением, которое мне нужно?Я очень признателен вам за помощь
edit: HTML для элемента
<div class="label-floating form-group error-group">
<label for="accountNumber" class="control-label">Company account number</label>
<input type="text" class="form-control error" name="account.accountNumber" id="accountNumber" value="" aria-invalid="true" required=""><label id="accountNumber-error" class="error" for="accountNumber">This field is required.</label>
<input type="hidden" id="accountNumberInexistent" value="This account number does not exist">
</div>