Есть ли способ заставить Ватина щелкнуть ссылку до того, как страница завершит загрузку

#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()?