Selenium ждет AJAX в Chrome - PullRequest
       14

Selenium ждет AJAX в Chrome

1 голос
/ 29 марта 2011

Я использую Selenium для автоматизации тестирования сайтов.Часть тестов включает ожидание завершения запросов AJAX.Я использовал эту строку, чтобы сделать это с jQuery 1.4:

selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.active == 0", "5000");

Она отлично работала в Chrome и Firefox 4, но не в IE9.Затем я обновился до jQuery 1.5, и он волшебным образом перестал работать в Chrome.Я пробовал следующие варианты, но ни одна из них не работает:

selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.active == 0", "5000");
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.ajax.active == 0", "5000");
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().$.active == 0", "5000");
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().$.ajax.active == 0", "5000");

Исключение SeleniumException заключается в том, что он не может прочитать свойство active или ajax неопределенного значения, поэтому я предполагаю, что он каким-то образом не может получитьв JQuery.Мой коллега проводит те же тесты на Firefox 4, и они проходят.

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

1 Ответ

0 голосов
/ 29 марта 2011

Очевидно, что все в Selenium можно исправить, выбрасывая случайным образом Thread.Sleep()s.В некоторых случаях окно не завершало загрузку, поэтому $ не было определено.Я поставил перед ожиданием сон, и теперь он работает нормально.

Мне пришлось использовать следующую строку:

selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().$.active == 0", "5000");

Даже если люди говорят, что я должен был использовать $.ajax.active, еслиЯ использую jQuery 1.5, он для меня не определен, тогда как $.active работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...