Vb.net Web浏览器事件
我在下面的代码中发现以下错误: 语句结尾应为第3行-第39列///错误2语句 不能出现在属性体中。假定财产终止。第5行 -列1///错误3未声明名称“pageready”。第28-31-36行第19-9-13列Vb.net Web浏览器事件,vb.net,winforms,browser,Vb.net,Winforms,Browser,我在下面的代码中发现以下错误: 语句结尾应为第3行-第39列///错误2语句 不能出现在属性体中。假定财产终止。第5行 -列1///错误3未声明名称“pageready”。第28-31-36行第19-9-13列 基本上每次浏览者忙的时候,你都必须等待它回来 组合您的所有按钮(由浏览器上的等待分隔) 将它们组合成这样的东西 Private Sub WhateverButtonName(sender As Object, e As EventArgs) Handles WhateverButtonN
基本上每次浏览者忙的时候,你都必须等待它回来 组合您的所有按钮(由浏览器上的等待分隔) 将它们组合成这样的东西
Private Sub WhateverButtonName(sender As Object, e As EventArgs) Handles WhateverButtonName.Click
'Button1 Code
WebBrowser1.Document.GetElementById("Email").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("Passwd").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.GetElementById("signIn").InvokeMember("click")
WaitForPageLoad()
'Button2 Code
For Each acct As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a")
If acct.GetAttribute("href").Contains("https://accounts.google.com/b/0/PlusPageSignUp") Then
acct.InvokeMember("click")
WaitForPageLoad()
End If
Next
End Sub
另外,使用此代码运行Wait Subs(对不起,没有源代码,我忘了在哪里找到它)
编辑:添加了完整代码
更新 这正是您应该看到的,-曲线(我用实际值替换文本框进行测试)。我在Form2中重读了我的。您可以将Form2重命名为Form1
我很感激。我正在尝试测试,但我得到的pageready未声明为错误。我在另一个答案中找到了该代码,它的私有属性pageready()也是布尔值,但当我添加该属性时,我会发现更多错误。请更新您的问题并告诉我您将其放置在何处。你应该能够复制我的方式,删除纯文本,将按钮名称更改为你的buttonName,然后运行代码。这就是你提供的所有代码,以及它的外观。如果您有WebBrows1和button1,这应该会起作用。如果你收到错误,写回你收到的错误。我真的很感激你花时间帮助我。我复制/粘贴了最终代码,这里是错误列表;语句结尾应为第3行-第39列///错误2语句不能出现在属性体中。假定属性结尾。第5行-第1列///错误3未声明名称“pageready”。第28-31-36行第19-9-13列再试一次,没有错误。在我自己的应用程序jsut中重新尝试了这个逻辑,了解它是如何在更新中发布的,它是如何运行并让我登录的。请查看关于
Application.DoEvents()
循环的一些想法。
Private Sub WhateverButtonName(sender As Object, e As EventArgs) Handles WhateverButtonName.Click
'Button1 Code
WebBrowser1.Document.GetElementById("Email").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("Passwd").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.GetElementById("signIn").InvokeMember("click")
WaitForPageLoad()
'Button2 Code
For Each acct As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a")
If acct.GetAttribute("href").Contains("https://accounts.google.com/b/0/PlusPageSignUp") Then
acct.InvokeMember("click")
WaitForPageLoad()
End If
Next
End Sub
#Region "Page Loading Functions"
Private Sub WaitForPageLoad()
AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
While Not pageready
Application.DoEvents()
End While
pageready = False
End Sub
Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
pageready = True
RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
End If
End Sub
#End Region
Public Class Form1
Private Property pageready As Boolean = False
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
'Button1 Code
WebBrowser1.Navigate("https://accounts.google.com/Login")
WaitForPageLoad()
WebBrowser1.Document.GetElementById("Email").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("Passwd").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.GetElementById("signIn").InvokeMember("click")
WaitForPageLoad()
'Button2 Code
End Sub
#Region "Page Loading Functions"
Private Sub WaitForPageLoad()
AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
While Not pageready
Application.DoEvents()
End While
pageready = False
End Sub
Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
pageready = True
RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
End If
End Sub
#End Region
End Class