Java 如何找到具有两种状态的占位符:clear和class=";“错误”;

Java 如何找到具有两种状态的占位符:clear和class=";“错误”;,java,selenium,selenium-webdriver,xpath,css-selectors,Java,Selenium,Selenium Webdriver,Xpath,Css Selectors,我正在测试ContactUs表单。 字段中的占位符有两种状态。 第一个状态-未填写任何内容时 <label for="edit-submitted-name">Name </label> 要验证是否存在class=“error”,可以使用以下解决方案: 使用css选择器: try { driver.findElement(By.cssSelector("label[for='edit-submitted-name']:not(.error)")) Sy

我正在测试ContactUs表单。 字段中的占位符有两种状态。 第一个状态-未填写任何内容时

<label for="edit-submitted-name">Name </label>

要验证是否存在
class=“error”
,可以使用以下解决方案:

  • 使用
    css选择器

    try {
        driver.findElement(By.cssSelector("label[for='edit-submitted-name']:not(.error)"))
        System.out.println("Validation okay");
    }
    catch (NoSuchElementException e) {
        System.out.println("Validation down");
    }
    
  • 使用
    xpath

    try {
        driver.findElement(By.xpath("//label[@for='edit-submitted-name' and not(@class='error')]"))
        System.out.println("Validation okay");
    }
    catch (NoSuchElementException e) {
        System.out.println("Validation down");
    }
    

要验证是否存在
class=“error”
,可以使用以下解决方案:

  • 使用
    css选择器

    try {
        driver.findElement(By.cssSelector("label[for='edit-submitted-name']:not(.error)"))
        System.out.println("Validation okay");
    }
    catch (NoSuchElementException e) {
        System.out.println("Validation down");
    }
    
  • 使用
    xpath

    try {
        driver.findElement(By.xpath("//label[@for='edit-submitted-name' and not(@class='error')]"))
        System.out.println("Validation okay");
    }
    catch (NoSuchElementException e) {
        System.out.println("Validation down");
    }
    

您可以在页面源代码中获得多个
错误
字符串实例,最好明确标识唯一元素,这样就不会出现误报匹配

以下是如何使用XPath定位器完成此操作:

  • 未填写任何内容的标签:

    //label[@for='edit-submitted-name' and not(@class='error')]
    

  • 带有验证错误的标签:

    //label[@for='edit-submitted-name' and @class='error']
    

  • 检查是否存在验证错误的Java代码示例:

    if (driver.findElements(By.xpath("//label[@for='edit-submitted-name' @class='error']")).size() > 0) {
        System.out.println("Validation error is present.");
    }
    
    更多信息:


    您可以在页面源代码中获得多个
    错误
    字符串实例,最好明确标识唯一元素,这样就不会出现误报匹配

    以下是如何使用XPath定位器完成此操作:

  • 未填写任何内容的标签:

    //label[@for='edit-submitted-name' and not(@class='error')]
    

  • 带有验证错误的标签:

    //label[@for='edit-submitted-name' and @class='error']
    

  • 检查是否存在验证错误的Java代码示例:

    if (driver.findElements(By.xpath("//label[@for='edit-submitted-name' @class='error']")).size() > 0) {
        System.out.println("Validation error is present.");
    }
    
    更多信息:


    这可以通过使用简单的CSS选择器来实现,请参见以下内容

    正常状态


    标签[for='edit-submitted-name']
    这可以通过使用简单的CSS选择器来实现,请参见以下内容

    正常状态


    label[for='edit-submitted-name']
    非常感谢。现在可以了,非常感谢。现在可以工作了。