selenium 在带有Java Selify中,需要可重用的方法来验证isElement的存在,该isElement可能具有不同的定位符,如XPath、id、类名

js5cn81o  于 2022-11-10  发布在  Java
关注(0)|答案(1)|浏览(92)

我想编写一个可重用的方法来识别Web元素是否存在。此方法需要接受不同的定位符,如XPath、id、类名。
以下是我尝试过的代码片段,但不适用于线路。If(Obj.isDisplayed())

public static boolean isElementPresent(WebDriver driver, WebElement Obj)
{
    boolean result = false;
    try 
    {
        // if(Obj.isDisplayed())
        if(driver.findElement(By.id("username")) != null)
        {
            System.out.println("WEBELEMENT Username FOUND");
            result = true;
        }
        else
        {
            result = false;
        }
    }   
    catch (Exception e) 
    {
        e.printStackTrace();
    }
    return result;
}
4xrmg8kj

4xrmg8kj1#

如果存在case元素,则Below方法返回True。

public boolean isElementPresent(WebDriver driver,By locator){

    if(driver.findElements(locator).size()!=0){
        //Element present
        return true;

    }
    else{
        //Element not present 
        return false;
    }
}

示例:

isElementPresent(By.id("test"));

   isElementPresent(By.xpath("//test1"));

对于您的案例,解决方案将是Try/Catch:

public boolean isElementPresent(WebElement element) {
   try {
       element.getText();
       return true;
      } catch (NoSuchElementException e) {
       return false;
      }

如果页面上不存在元素,则element.getText()将抛出NosuchElementException,方法将捕获此异常并返回False。
试一试,让我知道它对你是否有效。

相关问题