if / else语句失败

时间:2016-01-13 15:11:30

标签: java selenium selenium-webdriver junit

我正在使用if/else语句,如下所示,但脚本在Selenium WebDriver中失败。在这里,对于一个测试用例,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();
    }

3 个答案:

答案 0 :(得分:1)

        try
        {
        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 ex)
        {
            driver.findElement(By.cssSelector("div.Tooltip__body.Tooltip__body--bottom")).click();
        }

答案 1 :(得分:1)

我们需要点击元素" div.Tooltip__body.Tooltip__body - top"如果显示。如果没有则需要点击" div.Tooltip__body.Tooltip__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()

    }

由于

答案 2 :(得分:1)

我不擅长Java,所以即时完成步骤。试试看。    1.首先单独找到元素。  2.现在检查一下' top'不为空,然后显示检查并可以继续。下面的伪代码

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()
  }
}