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 :

[JavaFX] Recharger une URL/un code HTML d'une page web avec WebEngine


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 5
    Par défaut [JavaFX] Recharger une URL/un code HTML d'une page web avec WebEngine
    Bonjour à tous,

    Voici mon problème, à partir de mon application développé en Java, j'ouvre, grâce à webEngine, une fenêtre de connexion Google. Je souhaite que l'on puisse se connecter avec des identifiants que j'ai créé propre à mon application.
    J'arrive à y placer l'adresse mail et à cliquer sur suivant automatiquement grâce à WebEngine, voici le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
        private Scene createScene() {
            Group root = new Group();
            Scene scene = new Scene(root, 1000, 1000);
            System.out.println("1");
            webView = new WebView();
            webView.setPrefSize(1000, 1000);
     
    	        final WebEngine webEngine = webView.getEngine();
    	        webEngine.setJavaScriptEnabled(true);
    	        webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
    	            System.out.printf("%s -> %s%n", oldValue, newValue);
    	            switch (newValue) {
    	                case SUCCEEDED:
    	                    System.out.println("Ok");
    	                    html_succeed = 1;
    	                    Document doc = webEngine.getDocument();
    						// /!\ String html = (String) webEngine.executeScript("document.documentElement.outerHTML");
    						Element el = doc.getElementById("Email");
    						System.out.println(el);
    						el.setAttribute("value", "******@gmail.com");
    						Element btn = doc.getElementById("next");
    						((HTMLInputElement) btn).click();
     
    						webEngine.load(webView.getEngine().getLocation());
     
    						break;
    	                case FAILED:
    	                    final Throwable ex = webEngine.getLoadWorker().getException();
    	                    ex.printStackTrace();
    	                    break;
    	            }
    	        });
     
    	        webEngine.load("https://accounts.google.com/ServiceLogin/identifier?flowName=GlifWebSignIn&flowEntry=ServiceLogin");
     
    	        root.getChildren().add(webView);
     
    	        GridPane.setHgrow(webView, Priority.ALWAYS);
    	        GridPane.setVgrow(webView, Priority.ALWAYS);
     
    	        return scene;	        
        }
    Mais quand je passe à la fenêtre suivant, donc celle permettant de rentrer le mot de passe, l'URL en cours est toujours celle d'avant et non celle pour le Mot de passe et, de ce fait, je n'arrive pas à récuperer l'id de la balise HTML pour entrer automatiquement le mot de passe et par la suite me connecter à mon compte Google.

    Auriez-vous des pistes pour avoir le bon code HTML et non pas celle de la page de base ?

    Merci d'avance pour vos réponses !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Hello,

    mais, si c'est une fenêtre de connexion Google, Google n'acceptera pas autre chose que les identifiants qu'il connaît, voyons !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 5
    Par défaut
    Oui bien sur, mais là en voulant automatiser la connexion grâce à webEngine et une fois que mon code a rentrée automatiquement le mail de l'utilisateur puis quand le programme a automatiquement cliqué sur suivant, je n'arrive pas à récupérer le code HTML généré pour entrer le mot de passe, donc à récupérer l'id de la balise <input> permettant d'écrire le mot de passe. En effet, quand je récupere le code HTML, c'est toujours et encore celui de la première page ouverte.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Tu sais ces trucs-là ne sont pas vraiment conçus pour que tu arrives à faire ça. Tes utilisateurs, ça ne va pas les tuer de vraiment rentrer leurs identifiants sur la vraie page de connexion de Google. Et Google peut changer cette page quand bon lui semble comme bon lui semble.

    Mais bref, ça m'étonnerait beaucoup que ça change de page pour taper le mot de passe. Il modifie la page avec JavaScript pour demander un mot de passe, c'est tout...
    Et même s'il modifiait vraiment la page, elle ne serait sans doute pas accessible avec getLocation(), vu que tu as besoin des paramètres POST aussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/06/2018, 00h21
  2. Ecrire une page web avec du code Java.
    Par tsikpemoise dans le forum JSF
    Réponses: 2
    Dernier message: 07/11/2008, 08h45
  3. recupérer le code source d'une page web avec httpclient
    Par fraisa1985 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/07/2008, 10h40
  4. comment charger le code source d'une page web avec dotnet ?
    Par gizgoz dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 14/05/2007, 20h51

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