2009-09-09 7 views

Répondre

6

Je suggère d'utiliser un cadre de test comme HtmlUnit. Même s'il est conçu pour les tests, c'est un «navigateur» programmatique parfaitement adapté aux sites distants.

Voici quelques exemples de code à partir du site, montrant comment naviguer vers une page et remplir un formulaire:

public void submittingForm() throws Exception { 
    WebClient webClient = new WebClient(); 
    HtmlPage page1 = webClient.getPage("http://some_url"); 
    HtmlForm form = page1.getFormByName("myform"); 
    HtmlSubmitInput button = form.getInputByName("submitbutton"); 
    HtmlTextInput textField = form.getInputByName("userid"); 
    textField.setValueAttribute("root"); 
    HtmlPage page2 = button.click(); 
} 
+0

Merci pour le code. Il y a une erreur NoClassDefinationFoundError: org/apache/commons/httpclient/auth/CredentialsProvider D'où puis-je télécharger cette bibliothèque. Pouvez-vous me fournir le lien –

+0

http://htmlunit.sourceforge.net/dependencies.html – skaffman

+0

Merci beaucoup. J'ai configuré toutes les choses. Mais il existe une exception d'exécution. Pouvons-nous discuter pendant 10 min. J'ai besoin de votre aide pour supprimer l'exception relative aux cookies. –

4

Vous pouvez le lancer par

Runtime.getRuntime().exec("command-line command to launch IE"); 

puis utilisez la classe Java Robot à envoyer des clics de souris et remplir du texte. Cela semble plutôt grossier, cependant, et vous pouvez probablement faire mieux en communiquant directement avec le serveur Web (en contournant entièrement le navigateur).

+0

D'accord, bien qu'il puisse y avoir une demande client pour cela. Je travaille dans des tests automatisés pour une compagnie d'assurance et j'ai essayé de les convaincre que HTMLUnit serait un ajout précieux, mais ils insistent sur l'utilisation seulement du modèle d'interaction physique, pour mieux simuler l'expérience utilisateur. – Merkidemis

0

Si vous avez vraiment besoin d'un « réel » IE, vous pouvez essayer Watij, si vous avez juste besoin de fonctionnalités de navigateur java je recommande HttpClient

Mise à jour: comme l'OP indiqué à l'aide d'un vrai navigateur n'a pas été nécessaire/voulu. Un exemple d'un formulaire de connexion en utilisant HttpClient peut être trouvé ici: http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientFormLogin.java

+0

Je ne veux pas de vrai IE. Je veux juste me connecter à une page et avoir la source de la page qui vient après la connexion. Pouvez-vous aider à donner le code qui peut effectuer cette connexion. Je veux me connecter à orkut.com via java –

+0

Mis à jour ma réponse. (Et, si vous ne voulez pas IE, vous ne devriez pas le mentionner dans le titre de votre question ;-) –

1

This question's Les réponses peuvent être utiles. Mais vous devriez considérer le HTTP direct comme une meilleure façon d'interagir avec les sites Web.

0

Vous pouvez également utiliser WebTest de Canoo qui utilise actuellement HTMLUnit mais avec un calque supplémentaire. Devrait être plus facile de commencer à la couche du script et il est livré avec des abstractions supplémentaires pour l'envoi de mails, la vérification de sortie, etc.

http://webtest.canoo.com/webtest/manual/WebTestHome.html

0

Autant essayer Sélénium. C'est gratuit et a un emballage assez sympa pour IE.

Questions connexes