How to check if an element is visible with WebDriver

后端 未结 11 1586
臣服心动
臣服心动 2020-12-04 13:14

With WebDriver from Selenium 2.0a2 I am having trouble checking if an element is visible.

WebDriver.findElement returns a WebElement<

11条回答
  •  孤街浪徒
    2020-12-04 14:05

    Here is how I would do it (please ignore worry Logger class calls):

    public boolean isElementExist(By by) {
        int count = driver.findElements(by).size();
        if (count>=1) {
            Logger.LogMessage("isElementExist: " + by + " | Count: " + count, Priority.Medium);
            return true;
        }
        else {
            Logger.LogMessage("isElementExist: " + by + " | Could not find element", Priority.High);
            return false;
        }   
    }
    
    public boolean isElementNotExist(By by) {
        int count = driver.findElements(by).size();
        if (count==0) {
            Logger.LogMessage("ElementDoesNotExist: " + by, Priority.Medium);
            return true;
        }
        else {
            Logger.LogMessage("ElementDoesExist: " + by, Priority.High);
            return false;
        }   
    }
    
    public boolean isElementVisible(By by) {
        try {
            if (driver.findElement(by).isDisplayed()) {
                Logger.LogMessage("Element is Displayed: " + by, Priority.Medium);
                return true;
            }
        }
        catch(Exception e) {       
            Logger.LogMessage("Element is Not Displayed: " + by, Priority.High);
            return false;
        }       
    
        return false;
    }
    

提交回复
热议问题