Java 如何使用selenium获取HTML5验证消息?

Java 如何使用selenium获取HTML5验证消息?,java,html,selenium,constraint-validation,Java,Html,Selenium,Constraint Validation,请浏览网站 单击“登录”后,我有了此用户凭据表单,并尝试使用缺少的电子邮件地址或密码登录后,我收到以下消息: 因此,我试图通过打印所有页面HTML(driver.getPageSource())来查找此元素,但缺少此文本 知道如何验证我是否有此错误消息吗 属性validationMessage将返回消息,如果验证失败,将显示该消息: WebElement username = driver.findElement(By.name("uname")); String validation

请浏览网站

单击“登录”后,我有了此用户凭据表单,并尝试使用缺少的
电子邮件地址
密码登录后,我收到以下消息:

因此,我试图通过打印所有页面
HTML
driver.getPageSource()
)来查找此元素,但缺少此文本


知道如何验证我是否有此
错误消息吗

属性
validationMessage
将返回消息,如果验证失败,将显示该消息:

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);

:可自定义消息文本和验证。如果您想测试自定义的 验证和消息

这里是自定义验证的测试代码(Java、TestNG):


验证消息不是DOM的一部分。之所以生成它们,是因为您的输入文件具有
required
属性。如果您看到字段的HTML-

<input type="text" placeholder="Enter Username" name="uname" required="">

无需关心消息是否出现,因为这将由浏览器处理。

我认为这是特定于Chrome的,而不是页面中/页面上的HTML。我以前见过这样的问题,我自己也试着去寻找,但没能找到。如果您创建一个简单页面并添加一个包含
required
属性的输入,如果您尝试在表单为空时提交表单,您将收到此消息。在这个简单的例子中,您可以看到没有生成HTML
<input type="text" placeholder="Enter Username" name="uname" 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.
}