У меня есть приложение 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 или если мне нужно предоставить дополнительную информацию, сообщите мне.