Обработка всплывающих окон в разных браузерах с помощью WatiN

Я работаю над автоматизацией приложения Sharepoint с помощью WatiN. Есть несколько экранов, на которых при нажатии на кнопку или ссылку дополнительная информация будет отображаться во всплывающем окне.

URL-адрес браузера и URL-адрес всплывающего окна отличаются, поэтому я не могу получить ссылку на объекты.

Пожалуйста, помогите мне с этим, почти все мои сценарии должны будут обрабатывать такие световые короба.


person Kumar    schedule 19.11.2010    source источник


Ответы (1)


Если ваше всплывающее окно, насколько я понимаю, является страницей, отображаемой в новом окне браузера, вам нужно будет создать новый экземпляр браузера WatiN для доступа к этому «всплывающему окну».

WatiN предлагает несколько критериев соответствия для подключения браузера с помощью метода AttachTo(). Он должен быть объединен со спецификатором поиска:

  • По URL: Find.ByURL()
  • По URI: Find.ByURI()
  • По заголовку Windows: Find.ByTitle()
  • По дескриптору окна: Find.By()

Вот пример подключения браузера WatiN IE к существующей странице, в данном случае к вашему всплывающему окну, с использованием его заголовка окна:

IE myPopup = IE.AttachTo<IE>(Find.ByTitle("My Popup title"));

Поиск по названию может использовать только часть имени. Следуя тому же примеру, что и предыдущий, следующее также должно соответствовать вашему всплывающему окну:

IE myPopup = IE.AttachTo<IE>(Find.ByTitle("My Popup"));

Что касается поиска по URL или URI, они могут работать так же с частичным совпадением (я предполагаю). Поэтому, если вы знаете, какой URL открывает всплывающее окно, это может быть лучшим решением. Особенно, если URL-адрес более уникален, чем заголовок вашего всплывающего окна, вы уменьшите вероятность подключения к неправильному браузеру.

person Vaudry    schedule 19.11.2010
comment
Привет, не совсем так. Всплывающее окно не открывает новый браузер. Просто всплывающее окно присутствует в новом URL-адресе, но в существующем браузере. К сожалению, я не могу загрузить сюда скриншоты. Надеюсь, мой вопрос понятен - person Kumar; 20.11.2010
comment
Можете ли вы уточнить, что такое ваше всплывающее окно. iFrame, новый отображаемый элемент, новая вкладка,..? - person Vaudry; 23.11.2010
comment
Мы использовали открытое диалоговое окно Share Point 2010 для отображения всплывающего окна. Мы можем открыть всплывающее окно в Watin во время теста. Но не удалось получить доступ к элементам управления, присутствующим во всплывающем окне. Любая идея о том, как получить доступ к элементам управления, присутствующим во всплывающем окне, через Watin? - person Kumar; 14.12.2010
comment
Мы использовали открытое диалоговое окно Share Point 2010 для отображения всплывающего окна. Мы можем открыть всплывающее окно в Watin во время теста. Но не удалось получить доступ к элементам управления, присутствующим во всплывающем окне. Любая идея о том, как получить доступ к элементам управления, присутствующим во всплывающем окне, через Watin? - person Kumar; 14.12.2010
comment
Если ваше всплывающее окно представляет собой модальное диалоговое окно, аналогичное использованию чего-то вроде диалогового окна jQuery, то разметка добавляется на страницу, что означает, что любые элементы управления в модальном окне должны быть доступны из вашего текущего сеанса браузера. - person Silkster; 27.05.2011
comment
Кроме того, в нашем проекте WatiN здесь я добавил объект Modal для проверки общей функциональности, когда модальное окно открыто на странице. - person Silkster; 27.05.2011