Ero*_*Tor 4 html java selenium constraint-validation
请看这个网站。
单击登录后,我有此用户凭据表单,尝试登录后丢失Email Address或Password收到此消息:
因此,我尝试通过打印所有页面HTML( driver.getPageSource())来查找此元素,但缺少此文本。
知道如何验证我有这个error message吗?
属性validationMessage将返回消息,如果验证失败将显示:
WebElement username = driver.findElement(By.name("uname"));
String validationMessage = username.getAttribute("validationMessage");
Run Code Online (Sandbox Code Playgroud)
如果元素有required属性,提交表单后浏览器将显示消息:
boolean required = Boolean.parseBoolean(username.getAttribute("required"));
Run Code Online (Sandbox Code Playgroud)
您可以检查输入的值是否有效:
boolean valid = (Boolean)((JavascriptExecutor)driver).executeScript("return arguments[0].validity.valid;", username);
Run Code Online (Sandbox Code Playgroud)
这里自定义验证的测试代码(Java,TestNG):
Assert.assertTrue(Boolean.parseBoolean(username.getAttribute("required")), "Username is required and message should be showin");
Assert.assertEquals(username.getAttribute("validationMessage"), "My custom message", "Message text control");
username.sendKeys("@vasya ");
Assert.assertTrue((Boolean)((JavascriptExecutor)driver).executeScript("return arguments[0].validity.valid;", username), "Username has special characters");
Run Code Online (Sandbox Code Playgroud)
验证消息不是 DOM 的一部分。它们是因为您的输入文件具有required属性而生成的。如果您看到字段的 HTML -
<input type="text" placeholder="Enter Username" name="uname" required="">
Run Code Online (Sandbox Code Playgroud)
你可以看到它开启了 required 属性。看看这个。您可以验证您的字段是否具有此必需属性,如下所示-
WebElement inputElement = driver.findElement(By.name("uname"));
JavascriptExecutor js = (JavascriptExecutor) driver;
boolean isRequired = (Boolean) js.executeScript("return arguments[0].required;",inputElement)
if(isRequired )
{
//element is required and validation error will popup if the field is empty.
}
Run Code Online (Sandbox Code Playgroud)
无需关心消息是否出现,因为这将由浏览器处理。
| 归档时间: |
|
| 查看次数: |
4976 次 |
| 最近记录: |