How to get the text from the HTML5 input field error message in Selenium?
The Selenium API doesn't support directly a required field. However, you can easily get the state and the message with a piece of JavaScript (Java):
JavascriptExecutor js = (JavascriptExecutor)driver;
WebElement field = driver.findElement(By.name("email"));
Boolean is_valid = (Boolean)js.executeScript("return arguments[0].checkValidity();", field);
String message = (String)js.executeScript("return arguments[0].validationMessage;", field);
Note that it's also possible to use getAttribute
to get the validationMessage
even though it's a property:
String message = driver.findElement(By.name("email")).getAttribute("validationMessage");
In Python:
self.browser.get(self.live_server_url + registration_path)
email_input = self.browser.find_element_by_id('id_email_input')
validation_message = email_input.get_attribute("validationMessage");
http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement