我做了很多网络抓取工作来自动化我的一些工作职能。我试图在此website上填充此文本框。
我已经在大约10个其他网站上做到了这一点没有任何问题,但出于某种原因,这个给了我麻烦。我已经从其他人那里搜索了这里的所有参赛作品,但我不知道我错过了什么。
这是我正在使用的代码。我使用的是Visual Studio 2008 9.0.3版。我在设置属性等之后也尝试了invokemember点击。它找到了元素,所以我知道我已经到了那么远,文本框只是没有填充。任何帮助都会非常感激。
感谢。
theElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
For Each curElement As HtmlElement In theElementCollection
If curElement.OuterHtml.Contains("ctl00$CPHContent$txtUserID") Then
WebBrowser1.Document.GetElementById("ctl00_CPHContent_txtUserID").SetAttribute("value", "TEST")
Exit For
End If
Next
答案 0 :(得分:0)
这是我使用的代码,它似乎在大多数的时候运行良好。
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim userNameElement As HtmlElement = Nothing
userNameElement = WebBrowser1.Document.GetElementById("ctl00_CPHContent_txtUserID")
If Not Nothing Is userNameElement Then
userNameElement.SetAttribute("value", "TESTing")
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
WebBrowser1.Navigate("https://providerportal.careimprovementplus.com/Login.aspx")
End Sub
前几次不会设置属性。但是在页面被缓存后,它每次都很完美。可能有一个奇怪的时间问题。我敢打赌,如果您在Thread.Sleep(250)
事件中添加DocumentCompleted
作为第一个语句,它将解决您的问题。