Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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/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
Java if/else语句失败_Java_Selenium_Selenium Webdriver_Junit - Fatal编程技术网

Java if/else语句失败

Java if/else语句失败,java,selenium,selenium-webdriver,junit,Java,Selenium,Selenium Webdriver,Junit,我正在使用下面的if/else语句,但是脚本在SeleniumWebDriver中失败。这里,对于一个测试用例,if语句有效,但是对于另一个测试用例,else语句无效 if (driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).isDisplayed()){ driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__b

我正在使用下面的
if/else
语句,但是脚本在SeleniumWebDriver中失败。这里,对于一个测试用例,
if
语句有效,但是对于另一个测试用例,
else
语句无效

if (driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).isDisplayed()){
        driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).click();
    }
    else
    {
        driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--bottom")).click();
    }

如果显示元素“div.Tooltip\uuuu body.Tooltip\uuuu body--top”,我们需要单击它。如果没有,则需要单击“div.Tooltip\uuuuu body.Tooltip\uuuuuu body--bottom”

若我们使用.isDisplayed来检查元素是否显示,在任何情况下元素都不存在,它将抛出异常。这就是为什么我们需要使用try/catch来处理这个异常

    try{

        //if element is displayed, then click it
         if (driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).isDisplayed()==true){
             driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).click();
    }

    }catch(Exception e){

        //exception occurred as element (top) is not available.
        //so i need to click on bottom
          driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--bottom")).click();
         //if required we can collect exception : e.getMessage()

    }

谢谢

如果显示元素“div.Tooltip\uuuu body.Tooltip\uuu body--top”,我们需要单击它。如果没有,则需要单击“div.Tooltip\uuuuu body.Tooltip\uuuuuu body--bottom”

若我们使用.isDisplayed来检查元素是否显示,在任何情况下元素都不存在,它将抛出异常。这就是为什么我们需要使用try/catch来处理这个异常

    try{

        //if element is displayed, then click it
         if (driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).isDisplayed()==true){
             driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--top")).click();
    }

    }catch(Exception e){

        //exception occurred as element (top) is not available.
        //so i need to click on bottom
          driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--bottom")).click();
         //if required we can collect exception : e.getMessage()

    }

谢谢

我不擅长Java,所以我会把步骤放在下面。试试看。 1.首先分别查找元素。 2.现在检查“top”是否不为null,然后显示check for,可以继续

IWebElement top= driver.findelement( put you locator top here )
 IWebElement bottom = driver.findelement( put you bottom here)
 if(top!=null)
 {
  if(top.IsDisplayed)
  {
   top.click()
  }
}
else
{
  if(bottom!=null)
  {
    bottom.click()
  }
}

我不擅长Java,所以我把这些步骤放在后面。试试看。 1.首先分别查找元素。 2.现在检查“top”是否不为null,然后显示check for,可以继续

IWebElement top= driver.findelement( put you locator top here )
 IWebElement bottom = driver.findelement( put you bottom here)
 if(top!=null)
 {
  if(top.IsDisplayed)
  {
   top.click()
  }
}
else
{
  if(bottom!=null)
  {
    bottom.click()
  }
}

“不起作用”是什么意思?嗨,nicomp,测试用例失败了。当测试用例失败时,除了在单击时收到的所需元素之外,您不断言其他元素吗?或者,测试用例返回了什么错误?什么是“不工作”意思?嗨,nicomp,测试用例失败了。当测试用例失败时,您断言除了所需的元素之外,没有其他元素收到了单击?或者返回了什么错误测试用例?嗨,Leon,我可以在catch()上看到错误。表示预期的参数。你能帮我一把吗?请再试一次。这已经很好了,试着看看你写的cssSelector是否正确。我再次检查了leon,cssSelector是正确的,但是在你给出的代码中,我可以看到catch()行上有错误,这表示需要参数。什么样的异常不可见/不可单击?(你能写元素标签吗?)你能点击上面提到的问题的链接吗。表示预期的参数。你能帮我一把吗?请再试一次。这已经很好了,试着看看你写的cssSelector是否正确。我再次检查了leon,cssSelector是正确的,但是在你给出的代码中,我可以看到catch()行上有错误,这表示需要参数。什么样的异常不可见/不可单击?(你能写元素标签吗?)你能点击上面提到的问题的链接吗