[英]How to validate html5 constraint validation message using Selenium-Webdriver and Java
How do I validate the following message? 如何验证以下消息? The required class has the floating message.: 所需的类具有浮动消息:
try the following, but I get the error "no such alert" 尝试以下,但我得到错误“没有这样的警报”
package firsttestngpackage;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import org.testng.annotations.Test;
public class LoginBambu {
public String baseUrl = "http://132.148.19.159:8086/panel/#/login";
String driverPath = "H:\\chromedriver.exe";
public WebDriver driver;
@Test
public void IniciarSesion() {
System.setProperty("webdriver.chrome.driver", driverPath);
driver = new ChromeDriver();
driver.get(baseUrl);
WebElement login = driver.findElement(By.cssSelector("#page-top > div.margen-panel-60.ng-scope > div > div.row.container-fluid.ng-scope > div:nth-child(1) > div > form > button"));
login.click();
String mensaje=driver.switchTo().alert().getText();
System.out.println(mensaje);
}
}
The HTML5 Constraint validation message is the outcome of Constraint API's element.setCustomValidity() method. HTML5约束验证消息是Constraint API的element.setCustomValidity()方法的结果。
Note : HTML5 Constraint validation doesn't remove the need for validation on the server side. 注意 :HTML5约束验证不会消除服务器端验证的需要。 Even though far fewer invalid form requests are to be expected, invalid ones can still be sent by non-compliant browsers (for instance, browsers without HTML5 and without JavaScript) or by bad guys trying to trick your web application. 尽管可以预期的无效表单请求要少得多,但仍然可以通过不兼容的浏览器(例如,没有HTML5且没有JavaScript的浏览器)或者试图欺骗您的Web应用程序的坏人发送无效的表单请求。 Therefore, like with HTML4, you need to also validate input constraints on the server side, in a way that is consistent with what is done on the client side. 因此,与HTML4一样,您还需要在服务器端验证输入约束,其方式与客户端的操作一致。
To retrieve the text which results out from the element.setCustomValidity()
method, you can use the following solution: 要检索从element.setCustomValidity()
方法得到的文本,可以使用以下解决方案:
Code Block: 代码块:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class validationmessage { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\\\Utility\\\\BrowserDrivers\\\\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); options.addArguments("disable-infobars"); options.addArguments("--disable-extensions"); WebDriver driver = new ChromeDriver(options); driver.get("http://132.148.19.159:8086/panel/#/login"); WebElement username = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.form-control.ng-pristine.ng-invalid.ng-invalid-required.ng-touched[placeholder='Usuario']"))); System.out.println(username.getAttribute("validationMessage")); } }
Console Output: 控制台输出:
Please fill out this field.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.