使用Selenium测试文本框的验证

时间:2011-05-08 00:07:44

标签: selenium selenium-rc selenium-ide

我正在尝试使用Selenium和NUnit测试网页。我的一个测试用例需要验证文本框。使用Selenium和C#,我可以检索在文本框中输入的值。但是当文本框的验证失败时,文本框旁会显示一条错误消息。

所以,这是我的问题: 1.如何测试由于验证失败而引发的错误。 2.我可以得到该错误的文本。 或者,我是否会离开标记,我想做的事情根本不可能。

我试过读取元素的值,但它似乎总是一个空字符串。

比方说,我试图测试网页https://edit.yahoo.com/registration。当我输入“** myname&&”时在“名字”字段中,出现一条错误,指出“只允许使用字母,空格,连字符和撇号”。我希望能够测试是否出现了这个错误。

另外,我注意到当Selenium打开网页并在文本框中输入错误值时,错误消息不会显示在此文本框旁边。然而,当我自己打开网页并输入错误的文本时,会显示错误消息

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须使用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;
}