
Raul N

- Bei Eingabe ungültiger Daten im E-Mail-Feld wird eine HTML 5-Warnmeldung angezeigt.
- Firebug erlaubt es in zwei Fällen nicht, diese Fehlermeldung (Bitte geben Sie eine E-Mail-Adresse ein) zu überprüfen:
A. Während der Inspektion mit Firebug verschwindet es.
B. Ein Rechtsklick auf die Fehlermeldung funktioniert nicht, um das Element in der DOM-Struktur zu untersuchen.
Die Selenium-API unterstützt ein erforderliches Feld nicht direkt. Sie können den Status und die Nachricht jedoch leicht mit einem Stück JavaScript (Java) abrufen:
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);
Beachten Sie, dass es auch möglich ist, zu verwenden getAttribute
um das zu bekommen validationMessage
obwohl es eine Eigenschaft ist:
String message = driver.findElement(By.name("email")).getAttribute("validationMessage");

Vlad Lehelt
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

Amol Bande
Auf diese Weise erhalten Sie alle erforderlichen HTML5-Feldvalidierungen.
String errorMessage = driver.findElement(By.id("email")).getAttribute("validationMessage");
Die Fehlermeldung im HTML5-Eingabefeld ist eigentlich die Validierung von HTML5-Einschränkungen Nachricht, die das Ergebnis von ist Constraint-APIs element.setCustomValidity() Methode.
Um den Text abzurufen Bitte geben Sie eine E-mail-Adresse ein. Sie können eine der Locator-Strategien verwenden:
-
Verwenden Java und cssSelector:
WebElement emailField = driver.findElement(By.name("email"));
System.out.println(emailField.getAttribute("validationMessage"));
-
Verwenden Python und XPath:
emailField = driver.find_element(By.NAME, "email")
print(emailField.get_attribute("validationMessage"))
Verweise
Sie können ein paar relevante ausführliche Diskussionen finden in:
- So validieren Sie die HTML5-Constraint-Validierungsnachricht mit Selenium-Webdriver und Java
- Wie kann ich den Text der HTML5 Constraint-Validierung auf der Website https://www.phptravels.net/ mit Selenium und Java extrahieren?
9971700cookie-checkWie bekomme ich den Text aus der HTML5-Eingabefeld-Fehlermeldung in Selenium?yes