检查webbrowser是否在没有文档完成的情况下加载了新页面

时间:2016-04-23 20:29:20

标签: c# webbrowser-control screen-scraping

我正在写一个程序来执行一些基本的测试,我试图让它自动登录。如果我必须在每个可能的场景中使用它,那么documentComplete事件似乎会被滥用。

我在浏览器ReadyState中看到了很多例子,但是我无法让它们工作。

我有一个简单的方法,它找到用户名元素,输入用户名,调用click方法,找到密码元素,输入密码,然后调用click方法。

如果我使用消息框延迟进程,那么它可以工作,因为它可以加载页面时间。

private void fillInLogin()
        {
            browser.Document.GetElementById("des_LoginName").InnerText = "myLogon";
            browser.Document.GetElementById("btnLogOn").InvokeMember("click");

            //*********WHAT CAN I PUT HERE TO CHECK TO SEE IF THOSE ELEMENTS EXIST***********

            browser.Document.GetElementById("des_Password").InnerText = "myPassword";
            browser.Document.GetElementById("btnSubmit").InvokeMember("click");

        }

1 个答案:

答案 0 :(得分:1)

您是否考虑过订阅>> conda update nltk 活动?它需要等待页面加载的所有猜测,实际上是正确的方法。您无法真正依赖服务器响应在给定的等待期内完成。通常唯一的保证是客户端代码的超时时间,但是您不希望强制等待超时最大值。使用线程请求和侦听回调的事件将允许您发出请求并继续为用户提供响应式UI。