我正在尝试使用Selenium和NUnit测试网页。我的一个测试用例需要验证文本框。使用Selenium和C#,我可以检索在文本框中输入的值。但是当文本框的验证失败时,文本框旁会显示一条错误消息。
所以,这是我的问题: 1.如何测试由于验证失败而引发的错误。 2.我可以得到该错误的文本。 或者,我是否会离开标记,我想做的事情根本不可能。
我试过读取元素的值,但它似乎总是一个空字符串。
比方说,我试图测试网页https://edit.yahoo.com/registration。当我输入“** myname&&”时在“名字”字段中,出现一条错误,指出“只允许使用字母,空格,连字符和撇号”。我希望能够测试是否出现了这个错误。
另外,我注意到当Selenium打开网页并在文本框中输入错误值时,错误消息不会显示在此文本框旁边。然而,当我自己打开网页并输入错误的文本时,会显示错误消息
谢谢!
答案 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;
}