如何验证HTML5中的Constraint Validation API生成的消息中的文本?

时间:2016-05-25 09:07:52

标签: java html5 selenium-webdriver

我测试使用HTML5 Constraint Validation API生成错误弹出窗口的Web应用程序。 如何在selenium测试中验证弹出窗口中的文本? 我找不到合适的定位器。

2 个答案:

答案 0 :(得分:2)

Selenium API不直接支持约束验证。但是,您可以使用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);

请注意,即使它是属性,也可以使用getAttribute来获取validationMessage

String message = driver.findElement(By.name("email")).getAttribute("validationMessage");

答案 1 :(得分:1)

根据您提供的链接提供的示例HTML代码段解决您的问题:

<form id="myForm">
<input id="eid" name="email_field" type="email" />
<input type="submit" />
</form>

我已经浏览了上面的html源代码并且看得非常清楚,但是在点击&#34;提交查询&#34;。

后生成的验证消息的源代码中没有html源代码。

但是,我可以指导您提供一种解决方法,该方法与您收到错误消息时的工作方式一样好。

请这样理解:

1.Please observer source code of input boxes with Constraint Validation API in HTML5?
2.you will clearly see that its attribute defines what type of data they can take in 
  our example attribute name and type.
3.they both clearly say that above html code will take input in the form of email only.
4.so your logic will be to check value entered in the input box is of the type of 
  email or not.if its email then pass the test otherwise fail.

希望这对你有意义并最终帮助你。