0

我有一个自动点击器脚本,每隔几秒提交一次(大约每秒 1 次)。当我测试它时,我注意到它只能运行大约 20 分钟,然后它就会无响应,而我想解决这个问题的唯一方法是有一个每隔几秒刷新一次页面的脚本。但是,当我尝试此操作时,它不起作用,因为它在刷新时仍会尝试自动单击,从而给我一个无响应的错误:http ://gyazo.com/cfc3d673573d725042e3acc7142a53b9

我认为解决此问题的唯一方法是在单击按钮刷新时添加暂停或等待文档完成。看起来那会很好用,但我永远无法让它工作...... :\ 有什么帮助吗?如果有帮助,我决定发布我的脚本的来源:http: //pastebin.com/4WMcn5Ln 我会发布更多,但我只能发布 2 个链接......

4

1 回答 1

0

以下是使用 DocumentCompleted 事件的方法:

Private Sub navBtnClick(sender As Object, e As EventArgs)
    Dim wbrowser = New WebBrowser()
    wbrowser.DocumentCompleted += New WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted)
    wbrowser.Navigate("http://www.somesite.com/login")
End Sub

Public Sub WebBrowser_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
    Dim webBrowser = TryCast(sender, WebBrowser)
    webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted
    'MessageBox.Show(webBrowser.Url.ToString())
    webBrowser.Document.GetElementById("login").SetAttribute("value", txtUsername.Text)
    webBrowser.Document.GetElementById("passwd").SetAttribute("value", txtPassword.Text)
    webBrowser.Document.GetElementById("SI").InvokeMember("Click")
End Sub

如果要导航到的文档具有嵌入其他网页的 iframe,则 DocumentCompleted 事件会触发多次。如果您只想接收一次事件,只需取消订阅 DocumentCompleted 处理程序,如上所示。

于 2013-03-31T02:19:07.087 回答