我正在使用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();
}
答案 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()
}
}