如果selenium[JAVA]中不存在元素,如何编写代码

如果selenium[JAVA]中不存在元素,如何编写代码,java,html,selenium,testing,Java,Html,Selenium,Testing,这是一个登录测试场景有两个用户。他们是有效和无效用户。弹出“确定”按钮正在测试中 如果---->(如果不存在元素)--打印(“成功登录”) else-->(如果存在元素)---弹出窗口单击“确定”。与其他用户登录 我不能这样做没有这样的元素的情况 错误 代码 使用findElements()返回元素列表,然后检查列表的大小(如果大于0表示按钮存在),然后单击该按钮 List<WebElement> elements = driver.findElements(By.xpath("h

这是一个登录测试场景有两个用户。他们是有效和无效用户。弹出“确定”按钮正在测试中

如果---->(如果不存在元素)--打印(“成功登录”)

else-->(如果存在元素)---弹出窗口单击“确定”。与其他用户登录

我不能这样做没有这样的元素的情况

错误

代码


使用
findElements
()返回元素列表,然后检查列表的大小(如果大于0表示按钮存在),然后单击该按钮

List<WebElement> elements = driver.findElements(By.xpath("html/body/div/div/div[3]/button[1]"));
        System.out.println(elements.size());
        if(elements.size()>0)
        {

            elements.get(0).click();

        }
        else {

        System.out.println("good working"); 

        }
List elements=driver.findElements(By.xpath(“html/body/div/div/div[3]/button[1]”);
System.out.println(elements.size());
if(elements.size()>0)
{
元素。获取(0)。单击();
}
否则{
System.out.println(“工作正常”);
}

尝试使用driver.findElement而不是driver.findElement

在这种情况下,如果元素不存在,则temp.getSize()==0

  • 您可以使用try-catch块而不是if/else块,类似于 下面的代码

    试一试

    {

    }

    捕获(无接触元素异常)

    {

    }

  • 您还可以找到是否存在这样的元素

    布尔值isPresent=driver.findElements(By.yourLocator).size()>0

  •     WebElement temp444 = driver.findElement(By.xpath("html/body/div/div/div[3]/button[1]"));
        System.out.println(temp444.getSize());
        if(temp.getSize()!=null){
    
             temp.click(); // ----> It's working!
    
        }
        else {
    
        System.out.println("good working"); // ----> It isn't working.
    
        }
    
    List<WebElement> elements = driver.findElements(By.xpath("html/body/div/div/div[3]/button[1]"));
            System.out.println(elements.size());
            if(elements.size()>0)
            {
    
                elements.get(0).click();
    
            }
            else {
    
            System.out.println("good working"); 
    
            }
    
    driver.findElement(By.xpath("html/body/div/div/div[3]/button[1]"));
    
    Console.WriteLine("Element does not exist!");