How to get the text from the HTML5 input field err

2019-02-07 04:34发布

enter image description here

  1. On giving invalid data in the email field it prompts for an HTML 5 alert message.
  2. Firebug doesn't allow to inspect this error message (Please enter an email address) in two cases:

a. While inspecting with Firebug it is getting disappeared.

b. Right click on top of the error message doesn't work to inspect the element in DOM structure.

3条回答
Emotional °昔
2楼-- · 2019-02-07 05:15

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

查看更多
Melony?
3楼-- · 2019-02-07 05:24

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");
查看更多
来,给爷笑一个
4楼-- · 2019-02-07 05:35

You get all html5 required field validation in this way.

String errorMessage = driver.findElement(By.id("email")).getAttribute("validationMessage");
查看更多
登录 后发表回答