c# - WebBrowserDocumentCompletedEventHandler 不要等待 Ajax 异步完成

标签 c# javascript ajax iframe webbrowser-control

阅读后Dianyang Wu articlethis优秀的帖子我设法构建了一个小型.net应用程序(几乎是来自Wu源代码的C&P)来自动化测试(我们称之为protoTestApp)。我的最终目标是打开十几个小窗口,并在每个窗口中模拟不同的用户与网络应用程序交互以对其进行压力。

它可以在一定程度上工作,但在我登录网络应用程序(让我们称之为InternalTestSubject)后,它会调用外部url(让我们称之为ExternalTestSubject)并将其内容注入(inject)到iFrame上。这个特定的外部 URL 是另一个 Web 应用程序,它会查找父窗口以获取一些参数。直接打开ExternalTestSubject 不是一个选项。

我的问题是在我的 protoTestApp 中,我还想与该ExternalTestSubject 交互(通过 id 查找按钮,单击它等),但在我的 CompletedEvent 处理程序中,iFrame 仍然是空的。

WebBrowser 显示两个 Web 应用程序均已完全加载并正在运行,因此我认为处理程序只是不等待 iFrame 内容加载,因为它是通过 Ajax 异步调用完成的。

有什么建议可以完成它吗?

最佳答案

我想我在 the answer 中解释了这一点您已链接(更多详细信息请参见 another related answer )。 AJAX 页面是不确定的,因此没有通用的方法。

使用定期异步轮询来观察页面当前的 HTML 快照或 DOM 的更改,链接的帖子说明了如何执行此操作。您可以用相同的方式轮询框架的内容。

关于c# - WebBrowserDocumentCompletedEventHandler 不要等待 Ajax 异步完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23573189/

相关文章:

c# - 嵌套的 using 语句 - 哪一个不会被处理掉

c# - ArgumentNullException : Value cannot be null.(参数 'items')

c# - "Invalid JSON primitive: System.Object."的 Jquery Ajax POST 到 C# WebMethod 错误

javascript - 表单验证在第一次迭代时停止

javascript - Web 开发中客户端编码的安全趋势是什么

ajax - 我可以添加 Access-Control-Allow-Origin : * to the default headers

c# - NHibernate.Exceptions.GenericADOException : could not execute query 异常

javascript - 如何自动填写表格

javascript - 从 therubyracer(或 execjs)测试 ajax?

javascript - res.send 无法正常工作