Ich arbeite an einem Webcrawler in VB.net und mit dem System.Forms.WebBrowser-Objekt für die Handhabung der Navigation auf Websites, die Javascript oder Form-Posts verwenden, aber ich habe eine Problem. Wenn ich rückwärts (WebBrowser.GoBack()) zu einer Seite navigiere, die mit einem Formularpost geladen wurde, ist die Seite abgelaufen und ich muss eine Aktualisierung durchführen, um die Anforderung erneut zu senden. Wenn ich eine Aktualisierung (WebBrowser.Refresh()) aufruft, erscheint ein Dialogfeld zur Bestätigung. Gibt es eine Möglichkeit, diesen modalen Dialog im Code zu umgehen? Vielen Dank!WebBrowser.Refresh Problem in VB.Net
Antwort
Möglicherweise können Sie eine Aktualisierungsoption vom Typ System.Windows.Forms.WebBrowserRefreshOption übergeben.
Es gibt mehrere Möglichkeiten, hier beschrieben:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserrefreshoption.aspx
Es scheint, dass die Optionen der einzige Weg sind Sie programmatisch einen Web-Browser refresh steuern kann.
Ich hätte erwähnen sollen, dass ich es mit den Optionen IfExpired und Complety versucht habe, sowie mit der parameterlosen Aktualisierung, von der ich glaube, dass sie die gleiche wie Normal ist. Ich sehe immer noch Auffrischungsaufforderungen –
Ich hatte ein ähnliches Problem mit einem Popup mit einer JavaScript-Warnung angezeigt. Ich konnte es unter Verwendung eines window_error
Ereignisses unterdrücken.
Ich habe diese Zeile in der browser_completed
Ereignishandler:
((WebBrowser)sender).Document.Window.Error +=
new HtmlElementErrorEventHandler(Window_Error);
Hier mein window_error
Event-Handler ist:
void Window_Error(object sender, HtmlElementErrorEventArgs e)
{
e.Handled = true;
}
Eine weitere Möglichkeit, darüber nachzudenken, ist um mit this._browser.ScriptErrorsSuppressed
liebäugelt. Ich bin mir ziemlich sicher, dass Sie keinen Skriptfehler bekommen, aber es ist einen Versuch wert.
Ich habe eine Abhilfe/Hack zur Behebung dieses Problems in hier: http://www.experts-exchange.com/Programming/Languages/.NET/Q_25160302.html
Grundsätzlich Sie es wie folgt tun:
Browser.Refresh(WebBrowserRefreshOption.Completely);
SendKeys.Send("{Enter}");
Die SendKeys.Send("{Enter}");
Linie eine Enter-Taste, um aktive Fenster sendet, das ist der modale Dialog, den wir loswerden wollen.
- 1. Seltsame Zeichenfolge Problem in vb.net
- 2. VB.net BinaryWriter Problem
- 3. vb.net datagridview rowfilter Problem
- 4. VB.NET Filter ListItems Problem
- 5. VB.NET Byte Problem
- 6. Problem VB.NET LINQ Gruppe Beitritt
- 7. vb.net winforms Design/Layout Problem
- 8. vb.net Problem Ausführen eines Befehls
- 9. Problem mit COM-Ereignissen in VB.NET Umgang
- 10. Division von 0 Problem vb.net
- 11. Problem der Codeform vb.net C#
- 12. Problem beim Komprimieren von Dateien mit vb.net
- 13. vb.net Mathe-Problem - Erste Position in Prozent der Mausposition
- 14. VB.Net Problem beim Lesen von Text in einem Textfeld
- 15. PDF-Datei in VB.NET (Upgrade-Problem von VB 6)
- 16. Split 'Dezimal' in VB.NET
- 17. Schließen SQL-Verbindung von VB.net MVC 3.5 - Timeout-Problem
- 18. Castle ActiveRecord - Befehlszeilen-Assemblierungen im Vergleich zu VB.Net Assemblies Problem
- 19. VB.NET - Borderless MDI Kind Formular Problem auf gezeigt
- 20. vb.net - Problem Remaking com Objekt nach dem Programm hat
- 21. Problem mit ausgewählten Radiobuttonlist Wert auf Postback vb.net
- 22. Aktiver Drucker Problem beim Drucken von Word-Dokument über VB.net
- 23. VB.NET: Wie Referenz VB.NET-Modul?
- 24. Datenfilterung in vb.net
- 25. Labelsize erscheint größer in VB.Net
- 26. Unicode in vb.net
- 27. Transaktionsbereich Attribut in VB.NET
- 28. Spielentwicklung in vb.Net
- 29. Aktuelle URL in vb.net
- 30. C++ - Menüleiste in VB.NET?
Ich sollte auch hinzufügen, dass ich versucht habe, die WebBrowserRefreshOptions (Normal, Complete, IfExpired) ohne Glück zu verwenden. –