У меня есть форма с обязательными полями, когда я пытаюсь отправить форму с пустыми обязательными полями, отображается сообщение об ошибке, как показано ниже на снимке экрана. с Selenium в Java невозможно определить, отображается ли сообщение об ошибке, поскольку это ошибки HTML5, и они не существуют в Dom. Я погуглил и обнаружил, что мы можем использовать Javascript. Но когда я использовал это, я получаю ложь каждый раз, даже если сообщение отображается. Мы будем очень благодарны за вашу помощь.
WebElement field = driver.findElement (By.xpath ('// input [@ id =' frstNm ']'))
WebElement registerBtn = driver.findElement (By.xpath ('// div // button [text () =' Register ']'))
registerBtn.click () Boolean is_valid = ((js .executeScript ( 'return arguments [0] .checkValidity ();', field)) as Boolean)
String message = ((js .executeScript ('return arguments [0] .validationMessage;', field)) как строка)
println (is_valid)
html:
<div class="row" style="border: solid 1px white">
<input id="prtyId" name="prtyId" type="hidden" value="">
<div class="col-xs-3 col-md-3" style="border: solid 1px white">
<div class="row">
<div class="col-xs-10 col-md-10 required">
<label for="frstNm" class="control-label">First Name</label>
<input id="frstNm" name="frstNm" onkeypress="return event.charCode < 48 || event.charCode > 57" type="text" class="form-control" required="required" value="" maxlength="50">
</div>
</div>
<br>
<div class="row">
<div class="col-xs-7 col-md-7 required">
<label for="mi">Middle Initial</label>
<input id="mi" name="mi" onkeypress="return event.charCode < 48 || event.charCode > 57" type="text" class="form-conrol" value="" maxlength="1">
</div></div>
<br>
<div class="row">
<div class="col-xs-10 col-md-10 required">
<label for="lstNm" class="control-label">Last Name</label>
<input id="lstNm" name="lstNm" onkeypress="return event.charCode < 48 || event.charCode > 57" type="text" class="form-control" required="required" value="" maxlength="50">
</div>
</div>
<br>
<div class="row">
<div class="col-xs-10 col-md-10 required">
<label for="suffix">Suffix</label><input id="suffix" name="suffix" onkeypress="return event.charCode < 48 || event.charCode > 57" type="text" class="form-control" value="" maxlength="5">
</div>
</div>
<br>
<div class="row">
<div class="col-xs-10 col-md-10 required">
<label for="socialSecurity" class="control-label">SSN</label>
<input id="socialSecurity" name="socialSecurity" onkeypress="return event.charCode >= 48 && event.charCode <= 57" pattern="\d{3}-\d{2}-\d{4}" placeholder="XXX-XX-XXXX" type="text" class="form-control" required="required" value="" maxlength="11">
</div>
</div>
<br>
<div class="row">
<div class="col-xs-10 col-md-10 required">
<label for="dateOfBirth" class="control-label">Date of Birth</label>
<input id="dateOfBirth" name="dateOfBirth" onkeypress="return event.charCode >= 48 && event.charCode <= 57" pattern="\d{2}/\d{2}/\d{4}" placeholder="MM/DD/YYYY" type="text" class="form-control" required="required" value="" maxlength="10">
</div>
</div>
<br>
<div class="row">
<div class="col-xs-7 col-md-7 required">
<label for="gender" class="control-label">Gender</label>
<select id="gender" name="gender" class="form-control" required="required">
<option value="">----Select----</option>
<option class="form-control" value="M">Male</option><option class="form-control" value="F">Female</option><option class="form-control" value="O">Other</option>
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-xs-10 col-md-10">
<label for="emailAddress">Email Address</label>
<input id="emailAddress" name="emailAddress" placeholder="mailbox@domain.tld" type="email" class="form-control" value="" maxlength="50">
</div>
</div>
<br>
</div>
Скриншот формы введите описание изображения здесь