1

我尝试切换到警报,但它显示没有发现此类警报错误。我也尝试过 ifranes,windowhandling。弹出窗口仅停留 1-2 秒,我不能使用检查元素来获取它的 xpath。请检查随附的屏幕截图。

在此处输入图像描述

4

2 回答 2

1

您所指的警报窗口约束 API方法的结果。https://www.phptravels.net/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.
    
于 2018-12-03T10:26:02.667 回答
0

我们有可能执行鼠标操作并将鼠标移向元素,当鼠标指针移动到元素上时,我们将获得工具提示文本。

  1. 因此,获取元素和工具提示文本的定位器值。
  2. 使用元素定位器将鼠标指针移动到元素。
  3. 为工具提示文本创建 webelement 对象并获取文本。
于 2018-12-02T13:10:17.590 回答