在网站vb.net问题

时间:2015-08-25 18:22:51

标签: vb.net

我做了很多网络抓取工作来自动化我的一些工作职能。我试图在此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

1 个答案:

答案 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作为第一个语句,它将解决您的问题。