Как добавить условие ожидания в сценарии с капибарой?

Я использую capybara для тестирования моего приложения rails для тестирования интеграции. В моем приложении много лайтбоксов, вызовов Ajax и js.

 @javascript   
  Scenario: I agree functionatilty
   Given I go to the create account page
   When I click on button which is given as image "lnkTerms2"
   And I follow "i_agree"
   Then I go to the create account page

Здесь, в приведенном выше коде lnkTerms2 - это и идентификатор, который поможет в вызове функции js для открытия лайтбокса. И я получаю сообщение об ошибке

   Element is not currently visible and so may not be interacted with (Selenium::WebDriver::Error::ElementNotDisplayedError)
      [remote server] resource://fxdriver/modules/atoms.js:9519:in `unknown'
      [remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:256:in `unknown'
      [remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:305:in `unknown'
      [remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:320:in `unknown'
      [remote server] file:///tmp/webdriver-profile20111117-6876-18cfcfp/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:197:in `unknown'
      (eval):2:in `send'
      (eval):2:in `click_link'
      ./features/step_definitions/web_steps.rb:300:in `/^I click on button which is given as image "([^"]*)"$/'
      features/Sign_up_process.feature:61:in `When I click on button which is given as image "lnkTerms2"'

Проблема в том, что эта функция вызывается в webdriver, это нет времени для загрузки вызовов javascript и ajax. И лайтбокс не открывается. Поэтому, пожалуйста, предложите мне какое-нибудь решение.

Также, если предположить, что я пишу строку

When I click on button which is given as image "lnkTerms2"

после 4–5 операторов, тогда она работает нормально, поскольку у нее есть время для загрузки js.

6
задан user895993 17 November 2011 в 06:28
поделиться