Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我试图执行以下if-else条件,但else部分未执行';如果';条件不满足_Java_Selenium - Fatal编程技术网

Java 我试图执行以下if-else条件,但else部分未执行';如果';条件不满足

Java 我试图执行以下if-else条件,但else部分未执行';如果';条件不满足,java,selenium,Java,Selenium,在下面的代码中,如果登录成功,它应该在控制台中打印“login passed”。如果失败,它应该打印输入错误凭据的用户 如果登录失败,它工作正常。但当登录成功时,else部分不会执行。请帮我找出哪里做错了 driver.findElement(By.xpath("//*[@id=\"btnLogin\"]")).click(); if(driver.findElement(By.xpath("/html/body/div/form/div/div/span")).getText().equ

在下面的代码中,如果登录成功,它应该在控制台中打印“login passed”。如果失败,它应该打印输入错误凭据的用户

如果登录失败,它工作正常。但当登录成功时,else部分不会执行。请帮我找出哪里做错了

driver.findElement(By.xpath("//*[@id=\"btnLogin\"]")).click();

  if(driver.findElement(By.xpath("/html/body/div/form/div/div/span")).getText().equals("Invalid Credential")) {

  System.out.println(user);  

  }

  else {

      System.out.println("Login Passed"); 
  }
错误:

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/form/div/div/span"}

有两种方法可以执行if-else梯形图

  • 您可以使用try-catch块并将代码与
    isDisplayed()
    方法集成,该方法出现在Selenium 比如:

    driver.findElement(By.xpath("//*[@id="btnLogin"]")).click();  
    
    try{
    
    if(driver.findElement(By.xpath("/html/body/div/form/div/div/span")).isDisplayed())
    {
      System.out.println("Invalid");  
    }
    
    else{
    System.out.println("Valid");  
    }
    
    catch(Exception e){
    System.out.println("in exception");  
    }
    
  • 使用列表(将无效凭据存储在此处)并检查其大小。如果大小为1,那么肯定会有来自web页面的错误消息,否则流将转到else语句 代码

    driver.findElement(By.xpath("//*[@id="btnLogin"]")).click();  
             if(driver.findElements(By.xpath("/html/body/div/form/div/div/span")).size()==1){
              System.out.println("Invalid");       
                }
             else {
              System.out.println("Login Passed"); 
            }
    

    当Selenium未能找到与您给出的路径对应的元素时,它会引发NoTouchElement异常


    使用try-catch并处理该情况。

    当VM尝试处理您的情况时,会引发异常。您需要更正代码,或添加异常/错误handling@Bhuvana:没问题,伙计。。很高兴帮助你:)