Как заставить тест WebAii ждать завершения анимации jQuery? - PullRequest
0 голосов
/ 12 февраля 2010

Как написать Visual Studio WebAii Test , ожидающий завершения операции jQuery animate перед продолжением?

В настоящее время я просто делаю паузу на 5 секунд, используя цикл, но это может легко сломаться, если время анимации изменится.

Я попробовал несколько методов ожидания в API WebAii, но ни один из них, похоже, не ожидал такого рода вещей. Я думаю, что самое близкое, что я получил, это Actions.WaitForElement (..) , однако анимируемый элемент уже находится в DOM, так что, похоже, это не работает. Методы ожидания также кажутся мне неясными.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2010

Вы можете проверить атрибуты анимированного элемента. Даже если элемент всегда присутствует, атрибуты должны быть изменены после завершения анимации. Поскольку я не знаю, какие это могут быть изменения, ниже приведу общий пример.

Код использует HtmlFindExpression в сочетании с WaitForElement. Предполагается подождать, пока не будет обнаружен элемент с данным идентификатором ("ctl00_ContentPlaceHolder1_btnAccept_CD").

Manager mng = new Manager(false);
mng.Start();
mng.LaunchNewBrowser(BrowserType.InternetExplorer);
string url = "http://yoururl";
mng.ActiveBrowser.NavigateTo(url);
mng.ActiveBrowser.WaitForElement(
    new HtmlFindExpression("id=ctl00_ContentPlaceHolder1_btnAccept_CD"), 10000);

Надеюсь, это поможет.

0 голосов
/ 19 февраля 2010

Можете ли вы отредактировать JavaScript, чтобы добавить функцию обратного вызова в вызов jQuery animate ()? Если это так, это позволит вам установить ловушку, которую вы сможете легче обнаружить с помощью API WebAii. Например, вы можете сделать так, чтобы обратный вызов анимации добавил (невидимый) элемент в DOM, а затем использовал метод WaitForElement, чтобы обнаружить это. Что-то вроде клуджа, но это сработало бы!

...