Модульное тестирование HTML-редактора MS AJAX Toolkit - PullRequest
0 голосов
/ 02 июня 2009

Возможно ли модульное тестирование набора инструментов MS AJAX Control Toolkit HTML Editor ? Я пробовал Watin , WebAii и Selenium, но безуспешно ...

Watin

Я могу найти текстовое поле, связанное с элементом управления, но получаю исключение при попытке доступа к нему:

using (Browser ie = new IE()) {
    ie.GoTo(testUri);
    Assert.IsTrue(ie.ContainsText("Expected text"));

    var textBox = ie.TextField(Find.ById(id => id.Contains("Editor")));
    textBox.TypeText("testing 123");
}

System.Runtime.InteropServices.COMException: невозможно переместить фокус на элемент управления потому что он невидим, не включен, или типа, который не принимает фокус.

Селен

Я попробовал Selenium IDE также безуспешно. Когда я загрузил пример страницы ASP.net , набрал текст в редакторе и нажал кнопку «Отправить», вот тестовый пример:

[Test]
public void TheUntitledTest() {
    selenium.Open("/AJAX/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx");
    // Text was typed at this point
    selenium.Click("ctl00_SampleContent_submit");
}

Вот сообщения журнала повторного запуска записанных действий в Selenium IDE:

[info] Выполнение: | открыть | /AJAX/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx | |

[info] Выполнение: | щелкнуть | ctl00_SampleContent_submit | |

1 Ответ

1 голос
/ 09 июня 2009

Глядя на элемент управления, это IFrame, где редактор на самом деле является редактируемым телом

<body contentEditable="true">

Вы должны иметь возможность обновлять внутренний текст с помощью JavaScript, используя

IE.Frame(Find.BySrc(frameSrc)).Eval( ... javascript goes here ... );

введите команду watiN, затем нажмите кнопку.

Другим подходом было бы сделать движение мыши, затем щелкнуть мышью, а затем отправить ключи.

...