如何使用 selenium 获取 HTML5 验证消息?
How to get HTML5 validation message with selenium?
请参阅 this 网站。
单击登录后,我有此用户凭据表单,尝试登录后缺少 Email Address
或 Password
,我收到此消息:
所以我尝试通过打印所有页面来找到这个元素 HTML
(driver.getPageSource()
) 但是这个文本丢失了。
知道如何验证我有这个 error message
吗?
属性 validationMessage
将 return 验证失败时显示的消息:
WebElement username = driver.findElement(By.name("uname"));
String validationMessage = username.getAttribute("validationMessage");
如果元素具有 required
属性,浏览器将在提交表单后显示消息:
boolean required = Boolean.parseBoolean(username.getAttribute("required"));
您可以检查输入的值是否有效:
boolean valid = (Boolean)((JavascriptExecutor)driver).executeScript("return arguments[0].validity.valid;", username);
Not:消息文本和验证是可自定义的。如果你想测试定制
验证和消息。
自定义验证的测试代码(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");
验证消息不是您 DOM 的一部分。它们的生成是因为您的输入文件具有 required
属性。如果您看到字段的 HTML -
<input type="text" placeholder="Enter Username" name="uname" required="">
您可以看到它已经打开了必需的属性。检查 this。您可以验证您的字段是否具有此必需属性,例如-
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.
}
不需要关心消息是否出现,因为这将由浏览器处理。
请参阅 this 网站。
单击登录后,我有此用户凭据表单,尝试登录后缺少 Email Address
或 Password
,我收到此消息:
所以我尝试通过打印所有页面来找到这个元素 HTML
(driver.getPageSource()
) 但是这个文本丢失了。
知道如何验证我有这个 error message
吗?
属性 validationMessage
将 return 验证失败时显示的消息:
WebElement username = driver.findElement(By.name("uname"));
String validationMessage = username.getAttribute("validationMessage");
如果元素具有 required
属性,浏览器将在提交表单后显示消息:
boolean required = Boolean.parseBoolean(username.getAttribute("required"));
您可以检查输入的值是否有效:
boolean valid = (Boolean)((JavascriptExecutor)driver).executeScript("return arguments[0].validity.valid;", username);
Not:消息文本和验证是可自定义的。如果你想测试定制 验证和消息。
自定义验证的测试代码(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");
验证消息不是您 DOM 的一部分。它们的生成是因为您的输入文件具有 required
属性。如果您看到字段的 HTML -
<input type="text" placeholder="Enter Username" name="uname" required="">
您可以看到它已经打开了必需的属性。检查 this。您可以验证您的字段是否具有此必需属性,例如-
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.
}
不需要关心消息是否出现,因为这将由浏览器处理。