Vb.net 等待webbrowser加载,然后执行代码

Vb.net 等待webbrowser加载,然后执行代码,vb.net,Vb.net,我有一个经常在网站上声明用户名的代码,所以当社交媒体决定发布这些用户名时,我将是第一个得到它的人。现在,它确实超时了,这是一个巨大的问题。所以为了修复它,我尝试让它注销帐户,然后重新登录 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If number_of_ticks > NumericUpDown1.Value Th

我有一个经常在网站上声明用户名的代码,所以当社交媒体决定发布这些用户名时,我将是第一个得到它的人。现在,它确实超时了,这是一个巨大的问题。所以为了修复它,我尝试让它注销帐户,然后重新登录

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    If number_of_ticks > NumericUpDown1.Value Then
        WebBrowser1.Navigate("https://live.xbox.com/Account/Signout")
        While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete
            Application.DoEvents()
        End While
        WebBrowser1.Navigate("https://live.xbox.com/en-US/ChangeGamertag")

        WebBrowser1.Document.GetElementById("login").SetAttribute("value", txtUsername.Text)
        WebBrowser1.Document.GetElementById("passwd").SetAttribute("value", txtPassword.Text)
        WebBrowser1.Document.GetElementById("SI").InvokeMember("Click")
        number_of_ticks = 0
    End If

    If WebBrowser1.Url.ToString = "https://live.xbox.com/en-US/ChangeGamertag" Then
        WebBrowser1.Document.GetElementById("NewGamertag").SetAttribute("value", txtTurbo.Text)
        WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")
        number_of_ticks += 1
    Else
    End If
End Sub
正如您所看到的,在勾号的数量达到某个数字后,我希望它导航到注销页面,然后在网页完全加载后,导航到另一个页面,在该页面上再次输入信息以登录。不幸的是,这不起作用,当我尝试运行它时,我得到的只是错误。守则:

While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete
    Application.DoEvents()
End While
似乎根本不起作用,尤其是其他代码,如WaitForPageLoad。
我一直在寻找解决方案,但没有找到任何结果。

请不要这样做。不要做什么?。。。如果你是在暗示我违反了Xbox.com的规定,那你就错了。他们不在乎,这就是为什么他们仍然发布用户名,如果他们不想让你这么做,就会有验证码表单。这已经发生了,他们完全意识到了这一点,我只想学习如何去做,这样我就可以得到一个。不要在live.xbox.com上敲打。这是不礼貌的。啊,如果某件事可以做,不一定意味着它应该做。不要无知。这并没有违反他们的行为准则。我不想听起来粗鲁,但如果你不愿意帮我,那就不要回答。就这么简单。@Achilles:你有没有问过xbox.com他们是否接受那些在循环中声称用户名而浪费时间的人?不要以为他们对此没问题——问问他们。