2012-11-08 3 views
2

J'écris un outil pour obtenir des informations à partir de plusieurs sites Web, tous exigent que je me connecte. Mon approche normale est de suivre les demandes et les réponses dans Fiddler ou similaires, et de suivre directement chemin.Un navigateur sans interface graphique à gratter avec

Cependant, cela semble un peu strict. Un changement minime dans le site pourrait briser mon code. Je cherche donc quelque chose comme un navigateur interface utilisateur moins que je peux utiliser de la manière suivante:

Browser.Load("https://sourceforge.net/account/login.php"); 
Browser.Document.ElementById("form_loginname").Value = "login"; 
Browser.Document.ElementById("form_pw").Value = "password"; 
(Browser.Document.ElementById("login") As WebButton).Click(); // the login button is named "login". 

Une fois ce code se termine, je voudrais voir la page que je recevrais dans un navigateur régulier.

Est-ce que quelque chose comme je l'ai décrit existe?

EDIT - C# support est préféré

Répondre

2

Ceci est un peu comme le test automatisé des utilisateurs pour les applications Web, la principale différence étant que vous ne possédez pas l'application testée.

Selenium est une bibliothèque populaire pour automatiser la conduite d'un navigateur. Si vous voulez exécuter un programme en utilisant Selenium sans tête, vous pouvez utiliser un serveur X sans tête tel que Xvfb. En ce qui concerne ne pas utiliser Xvfb, il existe un older question sur des alternatives.

Depuis Selenium peut conduire de nombreux navigateurs à partir d'une variété de langages de programmation, je vous encourage à explorer la balise Selenium sur StackOverflow.

Un intérêt particulier pour vous serait quelque chose comme SimpleBrowser.WebDriver: Liaisons sélénium pour un navigateur léger en mémoire pour .Net. En fait, SimpleBrowser pourrait répondre directement à vos besoins, sans la complexité supplémentaire de Selenium.

+0

Est-ce que sélénium conduit un navigateur? Ou est-ce qu'il "navigue" seul? – Nitay

+0

Lance un navigateur, donc il supporte complètement les pages avec Javascript, les champs cachés, etc. –

+0

Cela signifie que je dois utiliser un navigateur qui est installé sur la machine cible. C'est un bon retour en arrière, mais je préfère trouver quelque chose de plus léger ... Bien que Selenium donne la solution la plus complète – Nitay

1

Mon Xidel peut faire quelque chose comme ça:

par exemple:

xidel https://sourceforge.net/account/login.php -f 'form((//form)[2], "form_loginname=login&form_pw=password&login=Log in")' --download site.html 

(le 'login = Connexion' est la valeur du bouton d'envoi)

Il ne supporte pas JavaScript par . J'ai entendu dire qu'il y a quelque chose qui s'appelle Selenium ...

+0

Le sélénium a l'air bien. Merci! – Nitay

Questions connexes