Wie bekomme ich den Text aus der HTML5-Eingabefeld-Fehlermeldung in Selenium?

Lesezeit: 2 Minuten

Wie bekomme ich den Text aus der HTML5 Eingabefeld Fehlermeldung in Selenium
Raul N

Geben Sie hier die Bildbeschreibung ein

  1. Bei Eingabe ungültiger Daten im E-Mail-Feld wird eine HTML 5-Warnmeldung angezeigt.
  2. 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");

Wie bekomme ich den Text aus der HTML5 Eingabefeld Fehlermeldung in Selenium
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

1647166928 332 Wie bekomme ich den Text aus der HTML5 Eingabefeld Fehlermeldung in Selenium
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?
997170cookie-checkWie bekomme ich den Text aus der HTML5-Eingabefeld-Fehlermeldung in Selenium?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy