Im desarrollando una aplicación de Windows Forms en VS 2010 C# con control webbrowser. Mi objetivo es automatizar la navegación en este sitio web, pero cuando estoy en un punto determinado, el sitio web mostrará una alerta de javascript que detendrá la automatización hasta que presione el botón Aceptar. Resolví un poco el problema simulando "enter press" cuando apareció, pero la aplicación debe permanecer enfocada para que funcione. Mi pregunta es, ¿hay alguna manera de eliminar esta alerta de javascript personalizada del sitio web (no tengo acceso a un lado, matarlo desde el lado del cliente) por lo que no aparece o de otra manera para solucionar este problema? La alerta de javascript (messagebox) que aparece no es un error, es una alerta de javascript que los programadores de ese sitio web pusieron allí por algún motivo.webBrowser control stop javascript alerta del sitio web
5
A
Respuesta
0
Puede intentar consumir el evento Navigated
e interceptar el DocumentText
antes de cargar la página para eliminar las referencias alert(...);
.
Desde la página Navigated
en el MSDN:
controlar el evento
Navigated
para recibir una notificación cuando el controlWebBrowser
ha navegado a un nuevo documento. Cuando se produce el eventoNavigated
, el nuevo documento ha comenzado a cargarse, lo que significa que puede acceder al contenido cargado a través de las propiedadesDocument
,DocumentText
yDocumentStream
.
Aquí hay algo de código:
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace Your.App
{
public class PopupSuppress
{
WebBrowser _wb;
public PopupSupress()
{
_wb = new WebBrowser();
_wb.Navigated += new WebBrowserNavigatedEventHandler(_wb_Navigated);
}
void _wb_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
string alertRegexPattern = "alert\\([\\s\\S]*\\);";
//make sure to only write to _wb.DocumentText if there is a change.
//This will prompt a reloading of the page (and another 'Navigated' event) [see MSDN link]
if(Regex.IsMatch(_wb.DocumentText, alertRegexPattern))
_wb.DocumentText = Regex.Replace(_wb.DocumentText, alertRegexPattern, string.Empty);
}
}
}
Fuentes/Recursos:
- http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.navigated.aspx
- http://regexpal.com/
- (Lo sentimos, tenían más pero tan sólo se me deja publicar 2 enlaces)
Cuestiones relacionadas
- 1. Automatización del sitio web usando C# y WebBrowser
- 2. alerta Detener Javascript emergente en navegador web C# control de
- 3. Detectar WebBrowser Control
- 4. ¿Cómo ejecutar JavaScript personalizado en el control WebBrowser?
- 5. Quitar el borde del control WebBrowser
- 6. BackgroundWorker y WebBrowser Control
- 7. control WebBrowser en una aplicación web
- 8. Tome capturas de pantalla del control WebBrowser
- 9. Javascript keyup/keydown en .NET WebBrowser Control
- 10. Cómo inyectar Javascript en el control WebBrowser?
- 11. Navegación y control WebBrowser
- 12. ¿Vista previa del sitio web de Javascript?
- 13. Cómo detectar la ejecución de javascript en el control WebBrowser
- 14. C# WebBrowser Control Proxy
- 15. C# WebBrowser Control System.AccessViolationException
- 16. Cómo deshabilitar la ventana "Alerta de seguridad" en el control Webbrowser
- 17. Windows Forms Control e iframes de WebBrowser
- 18. Alternativas al control WebBrowser en WPF?
- 19. Recuperando el texto seleccionado del control Webbrowser en .net (C#)
- 20. Control WebBrowser como interfaz de usuario
- 21. ¿Deshabilitar javascript en el control WebBrowser de WinForms?
- 22. Configuración del encabezado de autenticación para el control WebBrowser - ASP.NET
- 23. Cómo configurar y eliminar cookies del control WebBrowser para dominios arbitrarios
- 24. Control del navegador web: cómo capturar eventos del documento?
- 25. Presentación de una forma página web utilizando el control WebBrowser en C#
- 26. Agregar borde al control WebBrowser
- 27. Leer la variable de Javascript desde el control del navegador web
- 28. Usar imágenes locales en el control Webbrowser
- 29. Selección del idioma del sitio web
- 30. WPF WebBrowser Control: ¿Qué navegador usa?
Un poco de google encontró esto: http://josheinstein.com/blog/index.php/2010/01/webbrowser-control-prevent-window-alert/ –