2014-11-11 3 views
0

Я пытаюсь проверить форму ввода. Есть некоторые проверки на стороне клиента, которые я хочу проверить. Я не знаю о внутренностях, и я не хочу знать. Так что это черный ящик для меня.Проблема с проверкой на стороне клиента

шаги я хочу добиться:

  1. щелчок/фокус на текстовом поле, но вход/тип ничего
  2. ckick/фокус на другом текстовом поле
  3. теперь не должно быть и намека на пользователь, что поле с шага # 1 не должно быть пустым

Вот селеном сценарий у меня до сих пор:

<tr><td>focus</td>   <td>id=name</td>      <td></td> </tr> 
<tr><td>type</td>   <td>id=name</td>      <td></td> </tr> 
<tr><td>focus</td>   <td>id=email</td>      <td></td> </tr> 
<tr><td>verifyVisible</td> <td>css=div.field-error.errorname</td> <td></td> </tr> 

Это работает с использованием Selenium IDE, но только в том случае, если окно браузера имеет фокус. Если окно Selenium IDE находится в фокусе, тест не выполняется.

Я также смоделировал это с помощью webdriver. Это всегда терпит неудачу.

session.focus("id=name"); 
session.type("id=name",""); 
session.focus("id=email"); 
verifyTrue(session.isVisible("css=div.field-error.errorname")); 

Когда тест не пройден, это всегда, потому что css=div.field-error.errorname не был вставлен в DOM. Поэтому сценарий проверки не был вызван каким-то образом.

Как мне это проверить? Как заставить окно браузера иметь фокус, чтобы скрипт вел себя так, как он себя ведет в реальном мире?

ответ

0

Try ниже код:

session.click("id=name"); 
session.sendKeys("id=name",""); 
session.click("id=email"); 
//wait for 3 seconds; if this works, you can use dynamic wait here 
Thread.sleep(3000); 
verifyTrue(session.isVisible("css=div.field-error.errorname")); 

И вы используете Selenium RC API, не WebDriver API, лучше использовать WebDriver API.