2014-04-03 2 views
1

У меня есть веб-приложение (MVC4, KnockOut), которое я пытаюсь проверить с помощью CodedUI. На одном из экранов есть форма с букетом , выберите теги и кнопку, которая имеет привязку к нокауту, вызывающую WebAPI при нажатии. После вызова WebAPI пользователь перенаправляется на другой экран.CodedUI test показывает «вы уверены, что хотите покинуть» popup

Когда я использую этот экран вручную, я могу выбрать значения, а затем нажать кнопку и функции приложения, как ожидалось: вызывается WebAPI и в случае успеха перенаправляется.

Однако, когда я использую CodedUI для поиска и нажатия кнопки, я получаю всплывающее окно с вопросом, не уверен ли я, что я хочу покинуть страницу. Я думаю, что это поведение Internet Explorer по умолчанию при выходе страницы с данными формы. Мой вопрос: почему это происходит с автоматизацией CodedUI, но не тогда, когда я вручную нажимаю кнопку?

Я использую IE11 и VS2012 Премиум Update 4. Вот небольшой фрагмент моего UI кода автоматизации:

var button = new HtmlButton {Container = BrowserWindow}; 
button.SearchProperties.Add(HtmlControl.PropertyNames.Title, "My button title"); 
Mouse.Click(button); 

ответ

0

мне удалось выяснить, что в функции, которая вызывает WebAPI с помощью AJAX, мы сначала отключите событие onbeforeunload. Тем не менее, это, похоже, не вызвано, когда CodedUI нажимает кнопку. Я сумел обойти эту проблему с помощью

BrowserWindow.ExecuteScript("window.onbeforeunload = null;"); 

Однако я до сих пор не могу понять, почему я должен это сделать ...