Для автоматизации использую Visual Studio, C# + WebDriver.
У меня есть тест, который проходит по различным страницам и проверяет не возникло ли JS, серверных и т.д. ошибок на странице. Имеется следующая функция, ожидающая полную загрузку страницы:
public static void WaitForAjax(int timeout = 60)
{
var wait = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(timeout));
wait.Until(d =>
{
var javaScriptExecutor = d as IJavaScriptExecutor;
return javaScriptExecutor != null && (bool)javaScriptExecutor.ExecuteScript("return jQuery.active == 0");
});
}
Периодически, в этом месте тест валится с ошибкой : “Test method {MethodTitle из которого вызывается вышеуказанная функция} threw exception: System.InvalidOperationException: jQuery is not defined”.
Если бы эта ошибка возникала каждый раз, я бы подумал, что проблема в самой функции. Но эта ошибка выскакивает периодически - 1-2 раза на 10 ранов. То есть для одной и той же страницы может 5 раз нормально пробежать тест, а на 6й валится.
Буду признателен за подсказку, где искать проблему!
А что если девелоперы утверждают, что jQuery на странице есть всегда, а в функции вроде стоит ожидание одна минута. Но реально валится раньше - одной минуты jQuery по факту тест не ждёт.