.NET C #: contrôle WebBrowser Navigate () ne charge pas l'URL ciblée
Je suis en train de programmation pour charger une page web via le contrôle WebBrowser avec l'intention de tester la page & c'est des fonctions JavaScript. Fondamentalement, je veux comparer le HTML & JavaScript exécuté par le biais de ce contrôle avec une sortie pour savoir si il y a un problème.
Cependant, je vais avoir de la difficulté à simplement de la création et de la navigation du contrôle WebBrowser. Le code ci-dessous est destiné à charger le HtmlDocument dans le WebBrowser.Propriété de Document:
WebBrowser wb = new WebBrowser();
wb.AllowNavigation = true;
wb.Navigate("http://www.google.com/");
Lors de l'examen du navigateur web de l'état, via Intellisense après Naviguer() s'exécute, le WebBrowser.ReadyState est "non Initialisé", WebBrowser.Document = null, et globalement apparaît totalement épargnée par mon appel.
Sur contextuel de la note, je suis l'exécution de ce contrôle à l'extérieur d'un objet de formulaire Windows: je n'ai pas besoin de charger une fenêtre ou fait regarder la page. Exigences dictent le besoin de simplement exécuter le JavaScript de la page et d'examiner la résultante HTML.
Toutes les suggestions sont grandement appréciés, merci!
source d'informationauteur Dave
Vous devez vous connecter pour publier un commentaire.
Vous devez gérer le WebBrowser.DocumentComplete cas, une fois que l'événement est déclenché, vous aurez le Document etc.
Voici un exemple complet, que j'ai vite fait dans une application Windows Forms et testé.
Edit: Voici une version simple de code qui s'exécute une fenêtre à partir d'une application console. Vous pouvez bien sûr aller plus loin et d'exposer les événements de la console de code etc.
Vous avez probablement besoin d'héberger le contrôle dans une fenêtre parent. Vous pouvez le faire sans casser des exigences par tout simplement pas l'affichage de la fenêtre qui héberge le contrôle de navigateur en le déplaçant hors de l'écran. Il pourrait également être utile pour le développement de "voir" qu'il ne fait charger quelque chose pour les tests, vérification, etc.
Donc, essayez:
Également vérifier pour voir ce que les autres propriétés sont définies sur l'objet WebBrowser lorsque vous instanciez via l'IDE. E. g. créer un Formulaire, déposez un contrôle de navigateur sur celui-ci et de vérifier ensuite la forme du concepteur du fichier pour voir ce code est généré. Vous pourriez manquer de certains de propriété de la clé qui doit être défini. J'ai découvert beaucoup d'une omission dans mon code de cette façon, et aussi appris comment instancier des objets visuels de la programmation.
P. S. Si vous utilisez un hôte de la fenêtre, il ne doit être visible au cours du développement. Vous cacher, d'une certaine manière pour la production.
Une autre approche:
Vous pouvez aller "brut" par tryiing quelque chose comme ceci:
...puis RegEx ou analyser webPageData ce dont vous avez besoin. Ou avez-vous besoin de la jscript dans la page de l'exécution? (Ce qui devrait être possible avec .NET 4.0)
J'ai eu ce problème, et je ne savais pas que j'avais désinstallé Internet Explorer. Si vous avez, il se passera jamais rien, puisque le contrôle WebBrowser seulement instancie IE.
Le contrôle Webbrowser est juste un wrapper autour de la Internet Explorer.
Vous pouvez définir dans sur un invisible Windows Forms fenêtre complètement de l'instanciation.