Je ne voulais pas me connecter à un site Web via Java et effectuer des opérations, comme cliquer, ajouter du texte à un champ de texte, etc., via Java.Comment ouvrir IE à partir de Java et effectuer des opérations comme click() etc. via java?
Répondre
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();
}
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).
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
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
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 –
Mis à jour ma réponse. (Et, si vous ne voulez pas IE, vous ne devriez pas le mentionner dans le titre de votre question ;-) –
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.
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.
Autant essayer Sélénium. C'est gratuit et a un emballage assez sympa pour IE.
- 1. Suggestions de lecture pour BITS/Octets et exemple de code pour effectuer des opérations, etc
- 2. Ouvrir CDialog à partir de Java en utilisant JNI
- 3. Comment faire pour effectuer des chaînes de caractères en Java?
- 4. Comment puis-je ouvrir et fermer une fenêtre de navigateur à partir d'une applet Java?
- 5. Comment puis-je obtenir une applet Java signée pour effectuer des opérations privilégiées lorsqu'elle est appelée à partir de Javascript non signé?
- 6. Puis-je effectuer un rendu sur plusieurs écrans à partir de la même machine virtuelle Java?
- 7. Apprendre Java EE, jboss, etc
- 8. Identifier Bluetooth NetworkInterface à partir de Java?
- 9. Comment puis-je ouvrir un chemin UNC à partir de Linux en Java?
- 10. comment créer des fichiers hbm à partir de fichiers java?
- 11. Effectuer des opérations de suppression AJAX dans les rails
- 12. Comment surveiller le processus d'installation via le programme Java?
- 13. C#: Effectuer des opérations sur GPU, pas CPU (Calculer Pi)
- 14. Consommation Java WebService TimeStamp à partir de .net et WCF
- 15. Lecture à partir de Java JTextArea
- 16. Boîte de dialogue Ouvrir avec Java
- 17. Java AppDomaine comme l'abstraction?
- 18. Comment appeler des objets et des fonctions java à partir de CPython?
- 19. ouvrir IE sans barre d'outils ou barre d'adresse à partir de Windows VB Application
- 20. Comment puis-je ouvrir un fichier mp3 en utilisant Java/Groovy via une URL?
- 21. appel PHP à partir de Java
- 22. Création de xml à partir de Java
- 23. Envoi de courrier à partir de Java
- 24. Tuer Java Applet via Javascript
- 25. Comment exporter une application java webstart à distance via WAN?
- 26. Exécuter JSP directement à partir de Java
- 27. Contrôle de l'exécution d'un script Jython à partir de Java
- 28. Possibilité de se connecter à Outlook WebMail via Java?
- 29. Meilleur moyen d'ouvrir un document à partir de Java?
- 30. Communication avec une application Web Java à partir d'une application non-java via une socket TCP/IP
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 –
http://htmlunit.sourceforge.net/dependencies.html – skaffman
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. –