IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Ouvrir et executer javascript depuis browser internet


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 271
    Points : 91
    Points
    91
    Par défaut Ouvrir et executer javascript depuis browser internet
    Bonjour,

    Je cherche depuis un moment un moyen d'ouvrir un browser internet depuis une appli Java et ensuite de pouvoir exécuter des fonctions javascript.

    Je précise que le site que j'aimerais ouvrir n'est pas le mien, et qu'il contient du Flash.

    Jusqu’à maintenant j'ai essayé plusieurs librairies mais sans succès (surtout en ce qui concerne l'affichage du Flash).

    J'espère que ça existe ...
    Merci d'avance

  2. #2
    Membre régulier Avatar de nabodix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 93
    Points : 115
    Points
    115
    Par défaut
    Je comprends pas trop ce que tu cherches à faire, et je suis pas sur de pouvoir t'aider..

    mais;
    1) si tu cherches à executer un browser internet, tu peux le faire avec la méthode exec() de la classe Runtime (je crois bien qu'il existe une facon plus adéquate depuis java 6).
    Forcement, tu n'auras aucun contrôle sur le code javascript qui s'éxecutera.

    2) Si tu cheches à afficher la page dans ton application; tu peux utiliser JEditorPane, mais je pense pas que tu auras du javascript et encore moins du flash

    3) Si tu veux afficher ce site et que tu veux vraiment avoir un controle sur le javascript (et flash ?), tu peux aller voire les sources du projet libre de browser en java ==> 'the Lobo Project'

    4) si c'est juste le code java script qui t'interesse (et pas l'affichage de la page et du flash), tu pourais aussi considerer de télécharger (aver la class URLConnection) le code java script; le modifier à ta guise et l'executer


    Quelles sont ses librairies que tu as essayé sans succès?
    Et que cherches tu exactement à faire; dans quel but ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Points : 419
    Points
    419
    Par défaut
    Bonjour,

    En sus des méthodes exposées par nabodix, tu peux envisager aussi :

    - La classe java.awt.Desktop qui permet de lancer un navigateur via la méthode browse() : http://download.oracle.com/javase/6/...t/Desktop.html si le systême d'exploitation le permet.

    - Si c'est pour faire du test d'IHM tu peux te tourner vers une solution du type WebDriver / Selenium (voir : http://code.google.com/p/selenium/ )

    Il serait bien effectivement que tu précises un peu ton besoin.

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 271
    Points : 91
    Points
    91
    Par défaut
    Merci à vous deux pour vos réponses.

    Ce que je cherche à faire exactement, c'est de pouvoir afficher une page deezer, puis d’exécuter le code JavaScript contenu dans celle-ci, à partir d'une appli Java. Tout ça pour pouvoir lancer les fonctions JavaScript du lecteur depuis le code.

    J'ai essayé java.awt.Desktop qui marche très bien pour l'affichage, mais je n'ai pas trouvé le moyen de lancer une fonction javascript contenue dans la navigateur qu'il ouvre à partir du code.

    J'ai essayé "The Lobo project" mais l'affichage de la page deezer n'est pas propre.

    J'ai essayé "org.jdesktop.jdic.browser.*" mais elle n'est plus maintenue depuis longtemps.

    J'ai essayé "The Dj Project" qui marche plutôt bien, seulement le lecteur Flash est mal affiché.

    Est ce que sinon vous pensez qu'il est possible de copier le contenu de la page Deezer, de remplacer la partie Flash par un bout de code html/javascript de mon crue et de ,pourquoi pas, l'afficher grâce au DjProject ?

  5. #5
    Membre régulier Avatar de nabodix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 93
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par nu_tango Voir le message
    - La classe java.awt.Desktop qui permet de lancer un navigateur via la méthode browse() :
    Merci ! J'avais cherché, mais je ne retombais plus sur le nom, et ca me rendait dingue.

    Mais le plus génial, c'est vraiment la découverte de Selenium !!
    Merci nu_tango; aujourd'hui, n'aura pas été une journée perdue

    C'est comique, pcq j'étais entrain de proposer une solution qui allait avoir "une partie un peu plus chiante à coder", et c'est justement de cette partie que s'occuppe Selenium (d'après ce que j'ai compris).

    L'idée, si ca te convient, serait de différencier ton interface graphique (libre à toi de la faire ressembler à l'original/ voire de la recopier), de la partie qui effecturait les actions sur le site.
    Pour cette deusième partie, il s'agit plus d'un "webBot", qui n'est pas nécessairement simple à écrire en temps normal, mais si tu as du flash, il faut alors "écouter" les infos envoyé par l'application flash afin de pourvoir les "rejouer" plus tard.
    Selenium semble pouvoir gérer cette "deusième partie", et de te générer le code java que tu as besoin dans ton programme. nu_tango, dis moi si je me trompe.

    Pour info, il y a une vidéo disponible, d'une conférence sur Selenium, en francais, et récente (que je n'ai pas encore vu j'usqu'au bout). Dommage que le présentateur est si térrorisé, ca gâche un peu la compréhention.. mais bon.. (Et dire que je me trouvait probablement dans une salle voisine lorsque cette conférence c'est donné

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 271
    Points : 91
    Points
    91
    Par défaut


    C'est parfait ! Je vais tester ça sous peu.
    Merci

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 132
    Points : 419
    Points
    419
    Par défaut
    De rien les amis.

    Il faut dire que Selenium c'est nickel pour faire de la non reg automatisée sur des IHM. Mais le grand défaut de Selenium quand ce n'était que sous la gouverne d'OpenQA c'était le manque de fonctionnalités pour manipuler des évènements javascript.

    Depuis le rapprochement récent avec WebDriver c'est bien plus facile de faire ce genre de choses.

    A+

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 271
    Points : 91
    Points
    91
    Par défaut
    J'ai bien avancé grace à Selenium.
    Mais en parlant de Javascript, j'essaie de lancer une fonction qui est bien contenue dans la page (que j'arrive à lancer via firebug) mais qui me génère une exception si j'essaie de la lancer depuis mon code Java.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String script = "loadBox('login.php', 'loading', 'general', '', '0', '0', '');";
    selenium.getEval(script);
    L'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Exception in thread "main" com.thoughtworks.selenium.SeleniumException: ERROR: Threw an exception: loadBox is not defined
    	at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
    	at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
    	at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:262)
    	at com.thoughtworks.selenium.DefaultSelenium.getEval(DefaultSelenium.java:443)
    	at RemoteDeezerServerExec.Login(RemoteDeezerServerExec.java:68)
    	at RemoteDeezerServer.main(RemoteDeezerServer.java:83)
    Une idée ? Après, promis j’arrête

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    la page est-elle bien chargée? Complètement? En général on met une pause de 3~4 seconde en utilisant sélénium entre le chargement de la page et le moment ou on commence à manipuler ses script C'est pour tenir compte de temps que met la page à charger.

    Aussi, s'assurer que la page est *bien* chargée. Tu vois bien la bonne page à l'écran?

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 271
    Points : 91
    Points
    91
    Par défaut
    Oui, j'ai un selenium.waitForPageToLoad("25000"); juste avant et même en attendant 10 secondes en mode debug, j'ai la même erreur.

Discussions similaires

  1. [XL-2010] Pilotage Internet explorer contenant javascript depuis excel
    Par anthony14123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2013, 15h08
  2. Lancer un executable rapidement depuis mon browser
    Par temparm dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/01/2013, 01h26
  3. Executer du javascript depuis du code serveur
    Par Tristan Zwingelstein dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/11/2009, 16h37
  4. executer un code javascript depuis l'exterieur
    Par mapmip dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/06/2009, 09h03
  5. Executer du javascript depuis une IHM GWT
    Par power of mind dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 09/04/2009, 07h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo