我尝试过切换警报,但是没有发现警报发现错误。 而且我也尝试过ifranes,窗口处理。 弹出窗口仅停留1-2秒,我无法使用inspect元素获取该窗口的xpath。 请检查所附的scrrenshot。
答案 0 :(得分:1)
您所引用的https://www.phptravels.net/
中的警报窗口是Constraint API's element.setCustomValidity()方法的结果。
注意:HTML5约束验证不会消除服务器端验证的需要。即使可以预期的无效表单请求的数量要少得多,无效请求仍然可以由不兼容的浏览器(例如,没有HTML5和JavaScript的浏览器)或试图欺骗您的Web应用程序的坏人发送。因此,与HTML4一样,您还需要在服务器端验证输入约束,方法与在客户端进行的验证一致。
要检索从element.setCustomValidity()
方法得到的文本,可以使用以下解决方案:
代码块:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.By;
public class HTML5_input_field_validation_message {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.phptravels.net/");
WebElement checkin = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.form.input-lg.dpd1[name='checkin']")));
System.out.println(checkin.getAttribute("validationMessage"));
}
}
控制台输出:
Please fill out this field.
答案 1 :(得分:0)
我们有可能执行鼠标操作并将鼠标移向该元素,当鼠标指针移到该元素上时,我们将获得工具提示文本。