После прочтения Dianyang Wu article и this отличный пост мне удалось построить небольшой .net приложение (почти C & P из исходного кода Wu) автоматизировать тесты (давайте назовем его protoTestApp). Моя конечная цель - открыть дюжину маленьких окон и в каждом имитировать другого пользователя, взаимодействующего с веб-приложением, чтобы подчеркнуть его.WebBrowserDocumentCompletedEventHandler Не ждите Ajax Асинхронный завершить
Он работает в некоторой степени, но после входа в веб-приложение (назовем его InternalTestSubject) он вызывает внешний url (назовем его ExternalTestSubject) и вводит его содержимое в iFrame. Этот конкретный внешний URL-адрес является другим веб-приложением, и он не обращает внимания на родительское окно, чтобы получить некоторые параметры. Открытие ExternalTestSubject напрямую не является вариантом.
Моя проблема заключается в моем protoTestApp. Я хочу также взаимодействовать с этим ExternalTestSubject (найти кнопку по id, щелкнуть ее и т. Д.), Но у моего обработчика CompletedEvent iFrame по-прежнему пуст.
WebBrowser показывает как загруженные, так и рабочие веб-приложения, поэтому я предполагаю, что обработчик просто не дожидается загрузки iFrame, так как это выполняется асинхронным вызовом Ajax.
Любые советы по его усвоению?
Как начать действие iFrame? это какой-то JavaScript, который запускает событие onload, которое AJAX вызывает ответ инъекций в iFrame? – LB2
InternalTestSubject - это веб-приложение .net MVC. iFrame динамически генерируется связанным index.js в готовом событии и добавляется к div, объявленному в index.cshtml. iFrame указывает на URL-адрес ExternalTestSubject. До сих пор мой WebBrowserDocumentCompletedEventHandler вызывается дважды (после первого вызова на странице входа), и в обоих я вижу пустой iFrame, я полагаю, обработчик не ждет, чтобы документ iFrame загрузил – jean
_ «Я вижу пустое iFrame "_ как визуально, либо при попытке получить доступ к его свойствам окна/DOM? Там, где я собираюсь, я задаюсь вопросом, имеете ли вы ограничения в отношении того же самого происхождения, что и для iFrames. – LB2