C # ожидание загрузки страницы (веб-браузер) - PullRequest
0 голосов
/ 29 января 2019

Я новичок в C #, поэтому прошу прощения, если этот вопрос глупый.Я пытаюсь выполнить некоторую автоматизацию, используя элемент управления winforms веб-браузера.

, чтобы проверить состояние загрузки. Я использую ReadyState:

while (browser.ReadyState! = WebBrowserReadyState.Complete) {Application.DoEvents();}

Я получаю значение Complete в WebBrowserReadyState, но страница загружается не полностью, так как содержит диаграммы.

Как ждать, например, 2 секунды, чтобы загрузить все элементы в Интернетестраница?Я использую Windows 10 IE 11.

            using (WebBrowser browser = new WebBrowser())
            {
                browser.Width = width;
                browser.Height = height;
                browser.ScrollBarsEnabled = true;

                Uri uri = new Uri(Mon_URL);
                string additionalHeaderInfo = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password)) + System.Environment.NewLine;
                browser.Navigate(uri, null, null, additionalHeaderInfo);
                while (browser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
             }
            Application.Exit();

1 Ответ

0 голосов
/ 30 января 2019

while ( browser.ReadyState! = WebBrowserReadyState.Complete ) {Application.DoEvents ();}

я получаю значение Complete в WebBrowserReadyState, но страница загружается не полностью, поскольку содержит диаграммы.

Как ждать, например, 2 секунды, чтобы загрузить все элементы в Интернетестраница?Я использую Windows 10 IE 11.

Пожалуйста, проверьте состояние.Статус WebBrowserReadyState.Complete означает, что элемент управления завершил загрузку нового документа и всего его содержимого.если вы хотите дождаться успешной загрузки всех элементов, вы можете изменить условие с "! =" на "==", например так:

while (browser.ReadyState == WebBrowserReadyState.Complete) {
Application.DoEvents(); }
...