2015-07-20 2 views
1

У меня есть тестовый пример:Проверка отсутствие элемента

Assert.assertTrue(test .verifyNoDrillDisplayForCourses()); 

и метод booleanverifyNoDrillDisplayForCourses который проверяет element("xyz") не отображается,

try{ 
     if(element("xyz"). isDisplayed()) 
     return false; 

    else return true; 
    } 
    catch (Exception e) 
    { 

     return false; 
    } 
    } 

Но утверждение терпит неудачу как java .lang .AssertionError:expected [true] но найдены [false]. Я не могу понять, почему?

+0

Вы должны размещать больше кода, чтобы получить ответ – NovusMobile

+0

Это код , мне просто нужно проверить, что элемент не отображается, но я смущен тем, что оператор возврата добавить, чтобы сделать утверждение true. – Rkstr22

+0

make является ложным, если экран не отображается, тогда ваш assert будет true – NovusMobile

ответ

2

Метод isDisplayed() будет вызывать StaleElementReferenceException, если данный элемент больше не находится в DOM. Таким образом, вы должны изменить оператор catch на return true;.

+0

Не удалось выполнить мое утверждение – Rkstr22

+0

, если утверждение не соответствует действительности, что означает, что ваш элемент виден, не так ли? – peetya

+0

Элемент не отображается, и в этом проблема. – Rkstr22

1

Если вы проверяете наличие элемента, если он не найден, будет выбрано исключение. Поэтому, если вы обнаружите, что вы возвращаете false, если вы не можете найти его, вы также возвращаете false.

При проверке не-присутствия элемента вы должны иметь броский блок возврата истинный!

try{ 
     if(element("xyz").isDisplayed()) { 
      return false; 
     } else return true; 
    } 
    catch (Exception e) 
    { 

    return false; 
    } 
    } 

Я считаю, что в вашем операторе if отсутствует правильное форматирование из того, что вы скопировали.

Я изменен его выше, но в случае, если попробовать так:

if(element("xyz").isDisplayed()) { 
     return false; 
    } else return true; 
+0

Помимо возврата true в catch есть какие-либо изменения в моем методе, которые мне нужно сделать. – Rkstr22

+0

Не то, что я могу сказать о моей голове. Вы можете изменить тип исключения на элемент, который не найден, но помимо этого ваш код кажется прекрасным. – Iridann

+0

Я попытался вернуть true, но все же мое утверждение терпит неудачу. – Rkstr22

0

После кода помогло:

public boolean verifyNoelement() 

{ 

try 


{ 
      if(element("element").isDisplayed()) 
      { 
      return false; 
      } 
      return false; 
     } 
     catch(Exception e) 
     { 
      logMessage("No element displayed"); 
      return true; 
     } 


    } 
Смежные вопросы