Тестирование проверки текстового поля с использованием Selenium - PullRequest
1 голос
/ 08 мая 2011

Я пытаюсь протестировать веб-страницу, используя Selenium и NUnit.Один из моих тестовых случаев влечет за собой проверку текстовых полей.Используя Selenium и C #, я могу получить значение, введенное в текстовое поле.Но когда проверка текстового поля завершается неудачей, рядом с текстовым полем отображается сообщение об ошибке.

Итак, вот мои вопросы: 1. Как я могу проверить, возникла ли ошибка из-за ошибки проверки.2. Могу ли я получить текст этой ошибки.3. Или я не в курсе, и то, что я пытаюсь сделать, совсем не возможно.

Я пытался прочитать значение элемента, но всегда кажется, что это пустая строка.

Скажем, например, я пытаюсь проверить веб-страницу https://edit.yahoo.com/registration.Когда я ввожу «** myname &&» в поле «Имя», появляется сообщение об ошибке «Допускаются только буквы, пробелы, дефисы и апострофы».Я хочу проверить, возникла ли эта ошибка.

Кроме того, я заметил, что когда Selenium открывает веб-страницу и вводит неправильное значение в текстовое поле, сообщение об ошибке не отображается рядом с этим текстом.коробка.Принимая во внимание, что когда я сам открываю веб-страницу и ввожу неверный текст, появляется сообщение об ошибке

Спасибо !!

1 Ответ

0 голосов
/ 08 мая 2011

Вам придется использовать thread.sleep, но лучше. Лучше написать такую ​​функцию (я пишу это на JAVA, вы должны быть в состоянии написать ее для C #). Этот метод будет ожидать указанное количество секунд, пока элемент будет видимым. Если элемент не виден даже через указанное количество секунд, метод вернет false. Если он станет видимым, метод вернет true.

В качестве альтернативы вы можете использовать утверждение вместо возврата ложного условия, чтобы ваш тест не прошел.

public boolean waitForErrorMessage(String elementToWaitFor, int waitTimeInSeconds)
{
 int timeOut=0;
 while(!selenium.isVisible(elementToWaitFor))
  { 
    if(timeOut<waitTimeInSeconds){
       #sleep for one second
       Thread.Sleep(1000);
     }
    else {
       return false;
    }
    timeOut=timeOut+1;
  }
  return true;
}
...