Ajax немного запутался и работает с Selenium. Нет простого ответа на ваш вопрос, но у меня есть несколько советов ..
Вам нужно будет использовать множество этих циклов для ожидания действий / обновлений и т. Д .:
for (int second = 0;; second++) {
if (second >= 60) log.error("Timeout (60 seconds) while submitting request");
try { if (selenium.isElementPresent("elementID")) break; } catch (Exception e) {}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Также на страницах с поддержкой Ajax много раз возникали события, возникающие, например, при вводе символов в TextBox, а затем selenium.type("elementID", "12345");
подходит для вас. typeKeys("elementID", "12345");
будет запускать события.
С FireFox и firebug используйте отладчик javascript для анализа происходящего в фоновом режиме. Я предпочитаю использовать отладчик Chromes Inspect. Поговорите со своими разработчиками, чтобы узнать, что вызвало определенные элементы и т. Д.
Во-вторых, вы можете взглянуть на новейшую версию Selenium 2.0. Предполагается, что веб-драйвер намного лучше обрабатывает запросы Ajax, но у меня пока нет времени на работу.
Короче говоря, вам придется самостоятельно написать большую часть кода и модифицировать записанные части. Если не получится, есть коммерческие, которые лучше справляются с некоторыми типами Ajax.