WatiN SelectList Methods - страница не обновляется / действия не запускаются после взаимодействия со списком выбора - PullRequest
1 голос
/ 20 апреля 2010

Предисловие:

Если вас не волнует предисловие, перейдите к разделу с пометкой «Вопрос».

Привет

Недавно моя компания обновила до последней версии WatiN для своей инфраструктуры автоматизации тестирования. Мы обновили, чтобы избежать проблемы, когда взаимодействие со списком выбора может привести к ошибке ACCSES DENIED. Эта ошибка, по-видимому, является результатом того, что наше веб-приложение перезагружает страницу, на которой оно находится (которая находится во фрейме, который находится в наборе фреймов), с новыми полями после выбора определенных опций списка выбора. Также может случиться так, что наш фреймворк, который охватывает WatiN, часто выполняет действия с тем же списком SelectList после обновления страницы (я все еще смотрю на это, я новичок в фреймворке).

Новая версия WatiN устраняет ошибку ACCESS DENIED, но, похоже, также останавливает списки выбора от запуска действия, которое вызывает перезагрузку страницы с ее новыми параметрами. Фактически, если вы используете WatiN для выбора, список выбора не будет работать корректно, даже если с ним вручную взаимодействовали, пока страница не была вынуждена обновить.

Вопрос:

При выборе параметра в списке выбора с использованием новейшего кода WatiN событие, которое приводит к перезагрузке страницы нашего веб-приложения с новыми полями / значениями, не выполняется. Какие возможности могут быть причиной этого?

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

Большое спасибо, Чад

1 Ответ

2 голосов
/ 27 апреля 2010

Это часть нового кода WatiN. Новый код, если вы загляните в класс SelectList, содержит комментарии о том, что он был изменен, так что эти события не запускаются точно. Он говорит что-то вроде «вам может понадобиться нажать клавишу или другое событие, чтобы получить список выбора для запуска его событий».

Это не сработало для меня, поэтому мы вернулись к старому коду.

Одна вещь, которая помогла, это обернуть вызовы в список выбора с помощью try / catch (System.UnauthorizedAccess e), а затем выполнить .Refresh для объекта списка выбора. После этого вызов можно повторить, и, похоже, он работает довольно хорошо.

...