#jquery #selenium
#jquery #selenium
Вопрос:
Я пишу сценарий selenium, который должен начать тестирование только после завершения всех вызовов ajax.
На нескольких форумах предлагалось использовать следующее условие (в команде waitForCondition):
selenium.browserbot.getCurrentWindow().jQuery.active == 0
К сожалению, это продолжает выдавать ошибку:
jQuery не определен
jQuery определенно определен на моем сайте. Я также пытался заменить jQuery на $, но получаю ту же ошибку.
Есть идеи?
Ответ №1:
Возможно, вам потребуется дождаться завершения загрузки jQuery, попробуйте подождать, пока
typeof selenium.browserbot.getCurrentWindow().jQuery == 'function'
верно, перед проверкой активен.
Комментарии:
1. Хороший совет. Я не знаю, решило бы это проблему или нет, потому что я заставил ее работать, переключившись на тесты c # selenium (которые сработали).
Ответ №2:
Вы должны использовать selenium.browserbot.getUserWindow().$.active == 0
Ключевым отличием здесь является функция, которая вам нужна getUserWindow()
, а не getCurrentWindow()
Ответ №3:
Я только что смог заставить ее работать в Selenium IDE.
Command: waitForCondition
Taret: selenium.browserbot.getUserWindow().$.active == 0
Value: 30000
Ответ №4:
Если это в Firefox, это может быть обернуто в XPCNativeWrapper. Чтобы обойти это, «наилучший практический» способ получить окно — вызвать getUserWindow(), который обрабатывает разворачивающийся объект, чтобы его можно было использовать.
Это также предполагает, что jQuery не загружается асинхронно.
Ответ №5:
Единственный способ, которым я мог заставить это работать, — это сделать то же самое в тесте C # вместо режима Selenium HTML. В тестировании C # через RC-сервер это работает нормально.