Чтобы ответить на ваш первый пункт, да waitForCondition(javascript,timeout)
будет запускать JavaScript, пока не вернет истинное значение ИЛИ, когда истечет время ожидания.Вы должны взглянуть на документацию API для этого, так как вам нужно использовать browserbot для запуска скрипта в окне вашего приложения.Ссылка на документацию API: здесь
В Selenium 1 одним из способов обработки условий Ajax является создание пользовательских функций, которые будут ожидать выполнения условия или истечения времени ожидания.,В то время как обычный Selenium.isElementPresent немедленно завершится сбоем, если элемент отсутствует, ваша пользовательская функция будет ждать еще некоторое время (время загрузки Ajax), прежде чем произойдет сбой.В качестве примера вы можете сослаться на следующий пользовательский метод для isElementPresent.Это написано на JAVA, вы должны иметь возможность использовать ту же логику в используемом вами языке программирования.
public boolean AjaxIsElementPresent(String elementToLookFor, int timeOutValueInSeconds){
int timer=1;
while(timer<=timeOutValue){
if(selenium.isElementPresent(locator))
return true;
else
Thread.sleep(1000);
}
return false;
}
Этот метод вернет логическое значение false, если элементотсутствует даже после указанного значения timeoutValue.Если он находит элемент в значении timeout, то возвращает true.
Я видел некоторые встроенные функции для обработки AjaxCondition в Selenium 2. Но я не использовал его.Вы можете обратиться к Selenium 2 code base