42

任何人都可以向我发送如何验证元素的示例代码

  1. 存在
  2. 是可见的
  3. 启用
  4. 文本呈现

在 Selenium WebDrvier 中使用 Java

4

7 回答 7

77

为了便于理解,我使用了 java print 语句。

  1. 要检查元素存在:

    if(driver.findElements(By.xpath("value")).size() != 0){
    System.out.println("Element is Present");
    }else{
    System.out.println("Element is Absent");
    }
    

    或者

    if(driver.findElement(By.xpath("value"))!= null){
    System.out.println("Element is Present");
    }else{
    System.out.println("Element is Absent");
    }
    
  2. 要检查可见:

    if( driver.findElement(By.cssSelector("a > font")).isDisplayed()){
    System.out.println("Element is Visible");
    }else{
    System.out.println("Element is InVisible");
    }
    
  3. 要检查启用:

    if( driver.findElement(By.cssSelector("a > font")).isEnabled()){
    System.out.println("Element is Enable");
    }else{
    System.out.println("Element is Disabled");
    }
    
  4. 检查文本存在

    if(driver.getPageSource().contains("Text to check")){
    System.out.println("Text is present");
    }else{
    System.out.println("Text is absent");
    }
    
于 2013-01-18T11:05:14.447 回答
11

您可以尝试以下方法:

    WebElement rxBtn = driver.findElement(By.className("icon-rx"));
    WebElement otcBtn = driver.findElement(By.className("icon-otc"));
    WebElement herbBtn = driver.findElement(By.className("icon-herb"));

    Assert.assertEquals(true, rxBtn.isDisplayed());
    Assert.assertEquals(true, otcBtn.isDisplayed());
    Assert.assertEquals(true, herbBtn.isDisplayed());

这只是一个例子。基本上,您声明和定义您希望使用的 WebElement 变量,然后Assert是否显示它们。这是使用 TestNG 断言。

于 2013-01-04T18:40:19.797 回答
9

这是我的 Selenium WebDriver 的 Java 代码。编写以下方法并在断言期间调用它:

protected boolean isElementPresent(By by){
        try{
            driver.findElement(by);
            return true;
        }
        catch(NoSuchElementException e){
            return false;
        }
    }
于 2015-03-16T07:06:22.510 回答
5

尝试使用以下代码:

private enum ElementStatus{
        VISIBLE,
        NOTVISIBLE,
        ENABLED,
        NOTENABLED,
        PRESENT,
        NOTPRESENT
    }
    private ElementStatus isElementVisible(WebDriver driver, By by,ElementStatus getStatus){
        try{
            if(getStatus.equals(ElementStatus.ENABLED)){
                if(driver.findElement(by).isEnabled())
                    return ElementStatus.ENABLED;
                return ElementStatus.NOTENABLED; 
            }
            if(getStatus.equals(ElementStatus.VISIBLE)){
                if(driver.findElement(by).isDisplayed())
                    return ElementStatus.VISIBLE;
                return ElementStatus.NOTVISIBLE;
            }
            return ElementStatus.PRESENT;
        }catch(org.openqa.selenium.NoSuchElementException nse){
            return ElementStatus.NOTPRESENT;
        }
    }
于 2015-03-16T08:56:38.213 回答
1
webDriver.findElement(By.xpath("//*[@id='element']")).isDisplayed();
于 2019-02-04T21:25:36.623 回答
0

要确保元素存在,您可以执行以下操作:

driver.findElements(By.id("id"));

这将返回一个数组,如果该数组大小 > 0 则元素存在。

此外,您需要提供更多信息,例如语言以及在询问之前您尝试过什么,

祝你好运

于 2013-01-07T11:08:44.583 回答
-1

要检查元素是否可见,我们需要使用element.isDisplayed(); 但是如果我们需要检查Dom 中任何地方的元素是否存在,我们可以使用以下方法

public boolean isElementPresentCheckUsingJavaScriptExecutor(WebElement element) {
        JavascriptExecutor jse=(JavascriptExecutor) driver;
        try {
            Object obj = jse.execute("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;",
                    element);
            if (obj.toString().contains("true")) {
                System.out.println("isElementPresentCheckUsingJavaScriptExecutor: SUCCESS");
                return true;
            } else {
                System.out.println("isElementPresentCheckUsingJavaScriptExecutor: FAIL");
            }

        } catch (NoSuchElementException e) {
            System.out.println("isElementPresentCheckUsingJavaScriptExecutor: FAIL");
        }
        return false;
    }
于 2017-10-13T08:16:44.597 回答