Got it figured out. You can use something like this:
public String getPopupError() {
JavascriptExecutor executor = (JavascriptExecutor) driver;
// Note that before the form is submitted, arguments[0].validity.valid == false!
if (!(Boolean) executor.executeScript("return arguments[0].validity.valid;", username)) {
log.warn("Username: {}", executor.executeScript("return arguments[0].validationMessage;", username));
return (String) executor.executeScript("return arguments[0].validationMessage;", username);
}
if (!(Boolean) executor.executeScript("return arguments[0].validity.valid;", password)) {
log.warn("Password: {}", executor.executeScript("return arguments[0].validationMessage;", password));
return (String) executor.executeScript("return arguments[0].validationMessage;", password);
}
return null;
}
In the above case username and password are WebElement.