Работа на веб-странице с использованием объекта документа - PullRequest
1 голос
/ 21 октября 2011

У меня есть приложение VB.Net, которое должно печатать несколько страниц с безопасного сайта в интрасети; приложение было создано и работало для незащищенного сайта, но теперь оно должно войти в систему, прежде чем получить доступ к веб-страницам, необходимым для печати.

Я получаю ошибку «Ссылка на объект не установлена ​​для экземпляра объекта», когда я использую свой новый Sub, который выглядит следующим образом:

Private Sub SiteLogin()
    WebBrowser1.Navigate("http://url/login/")

    WebBrowser1.Document.GetElementById("user").SetAttribute("value", "username")
    WebBrowser1.Document.GetElementById("password").SetAttribute("value", "mypassword")

    WebBrowser1.Document.GetElementById("submit").InvokeMember("click")
End Sub

Я получил код из этого учебника по VB , но мне кажется, что мне чего-то не хватает в том, как я ссылаюсь на объект WebBrowser.Document. Я никогда раньше не пользовался VB.Net, поэтому я не знаю много об этой проблеме, у меня есть следующий подпункт, который, однако, работает из оригинальной программы:

Private Sub WebPrint()
    WebBrowser1.Navigate(strUrl)
    WebDocLoaded = False
    'lblMessage.Text = "Waiting for report page to load"
    Do Until WebDocLoaded
        System.Windows.Forms.Application.DoEvents()
    Loop
End Sub

Этот Sub печатает заданную страницу в IE, поэтому я решил, что мог бы использовать тот же объект WebBrowser1 для Sub входа в систему, так как я не знаю, как или я должен объявить отдельный объект для Sub SiteLogin Sub. Обе эти функции вызываются после определения объекта WebBrowser1.

Мне просто нужно иметь возможность отправить простую форму входа в систему по заданному URL-адресу, и эта информация должна быть жестко задана (нет возможности установить местоположение или информацию для входа, и их не должно быть). Если есть другой способ зайти на этот сайт через VB.Net или если мне нужно предоставить дополнительную информацию, сообщите мне.

1 Ответ

1 голос
/ 22 октября 2011

.Navigate возвращается до завершения загрузки страницы, поэтому DOM не готов и .Document недоступен.

См; Как дождаться полной загрузки WebBrowser в VB.NET?

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