#unit-testing #automated-tests #watin
Вопрос:
Мы используем WatiN для тестирования нашего пользовательского интерфейса, но для завершения загрузки одной страницы (которая, к сожалению, не находится под контролем наших команд) требуется вечность. Есть ли способ заставить Ватина щелкнуть ссылку на странице до того, как страница полностью завершит рендеринг?
Комментарии:
1. Время ожидания Watin контролируется свойством WaitForLoadTimeout. Вот сообщение в блоге, в котором немного говорится об этом: <a href=» http://blog.agilejedi.com/2008/08/watin-installed.html blog.agilejedi.com/2008/08/watin-installed.html»>http://…> >
2. К сожалению, дело не в том, что WatiN ждет недостаточно долго, а в том, что он ждет, пока страница загрузится, прежде чем что-то делать. Мы нашли решение, загрузите страницу,
ClickNoWait()
затем найдите ссылку на странице, как обычно, но позвонитеWaitUntilExists()
по ссылке, прежде чем звонитьClick()
. Таким образом, ВатиН нажмет на ссылку, как только она будет загружена, а не будет ждать, пока загрузится вся страница.
Ответ №1:
Вот код, который мы нашли для работы:
IE browser = new IE(....);
browser.Button("SlowPageLoadingButton").ClickNoWait();
Link continueLink = browser.Link(Find.ByText("linktext"));
continueLink.WaitUntilExists();
continueLink.Click();
Комментарии:
1. 1 за то, что вы сами ответили на свой вопрос 😉 И хороший ответ!
Ответ №2:
Вы должны быть в состоянии опустить вызов WaitUntilExists (), так как WatiN делает это внутренне, когда вы вызываете метод или свойство элемента (например, ссылку.Нажмите() в вашем повторном примере).
ХТ, Йерун ван Менен, Ведущий дев УотиН
Комментарии:
1. Но я не вызываю click, я вызываю ClickNoWait() разве это не значит, что он не будет ждать, пока я не вызову WaitUntilExists()?