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

Windows Forms Discussion :

[Winform] Ouvrir et compléter un formulaire dans firefox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 24
    Points
    24
    Par défaut [Winform] Ouvrir et compléter un formulaire dans firefox
    Bonjour à tous !

    J'ai une application WinForm qui me permet d'ouvrir un page web sous IE, de compléter un formulaire présent sur ladite page et de simuler un clic sur un bouton afin de soumettre le formulaire.

    Je voudrais faire la même chôse avec firefox mais je n'ai pas trouver grand chôse sur le web...

    Avez-vous des pistes pour moi ?

    Merci,

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Tu fais comment avec IE ? N'est-ce pas le même principe avec FFX ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Non ce n'est pas le même principe.
    Avec IE j'utilise SHDocVw.dll:

    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
     
     
    private void button1_Click_1(object sender, EventArgs e)
            {
                InternetExplorer ie = new InternetExplorer { Visible = false };
                ie.Navigate("www.monurl.com");
                ie.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(ie_DocumentComplete);
            }
     
            void ie_DocumentComplete(object pDisp, ref object URL)
            {
                InternetExplorer ie = pDisp as InternetExplorer;
     
                if (ie != null && ie.ReadyState == tagREADYSTATE.READYSTATE_COMPLETE)
                {
                    if (ie.LocationURL == url)
                    {
                        IHTMLDocument3 doc = ie.Document as IHTMLDocument3;
                        HTMLInputElement txtLogin = doc.getElementById("txtUserNamel") as HTMLInputElement;
                        txtLogin.value = "userName";
                        HTMLInputElement txtPwd = doc.getElementById("txtPassword") as HTMLInputElement;
                        txtPwd.value = "pwd";
                        HTMLInputButtonElement btnLogin = doc.getElementById("btnLogin") as HTMLInputButtonElement;
                        btnLogin.click();
                    }
                    else
                    {
                        ie.Visible = true;
                    }
                }
            }

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Avec firefox, je démarre un processus d'abord:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Process.Start("firefox.exe", "http://www.monurl.com");
    et j'uilise user32.dll pour récupérer ma fenêtre et j'envoies un flux texte grâce à SendKeys. Je simule un tab pour changer de zone de texte.

    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
     
    // Get a handle to an application window.
            [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
            public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
     
            // Activate an application window.
            [DllImport("USER32.DLL")]
            public static extern bool SetForegroundWindow(IntPtr hWnd);
     
    private void btnEnterText_Click(object sender, EventArgs e)
            {
                var handle = FindWindow("MozillaUIWindowClass", "Environnement de recette 1.4.0.3 - Mozilla Firefox");
                SetForegroundWindow(handle);
                SendKeys.SendWait(txtEntry.Text);
            }
     
            private void btnTab_Click(object sender, EventArgs e)
            {
                var handle = FindWindow("MozillaUIWindowClass", "Environnement de recette 1.4.0.3 - Mozilla Firefox");
                SetForegroundWindow(handle);
                SendKeys.SendWait("{TAB}");
            }
    Mes problèmes ici sont:
    - je ne sais pas quand le site a fini d'être chargé et que je peux commencer à envoyer du texte à la fenêtre.
    - en simulant un 'tab' au lieu de donner le focus au prochain controle, le focus est donné à deux où trois contrôles apres le controle courant.

  5. #5
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Ce n'est pas vraiment un problème "Winform", mais plutôt de l'automation de Firefox.

    Dans quel but souhaites-tu faire ça ? Test automatisé ?

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Non ce sont les spécifications de l'application que je dois développer...
    Chaque utilisateur se logue dans l'application et retrouve un ensemble de liens vers un intranet.
    Chaque lien est en fait un page de login sur l'intranet. Lorsque l'utilisateur clique dessus une page s'ouvre sous IE, et l'authentifie sur l'application intranet correspondante.
    Je dois faire la même chose avec Firefox.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Points : 456
    Points
    456
    Par défaut
    Pourquoi ne pas développer une page que tu appellerais en passant les paramètres nécessaires à l'authentification dans l'URL.

Discussions similaires

  1. ouvrir un lien hypertexte pdf dans firefox
    Par azerty.123.450 dans le forum Firefox
    Réponses: 2
    Dernier message: 09/05/2010, 23h27
  2. ouvrir une nouvelle fenetre pdf dans firefox
    Par leoriviera2582 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/04/2010, 15h14
  3. Mauvaise FORM envoyée sur 2 formulaires dans Firefox
    Par suricat dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/08/2007, 15h48
  4. ouvrir un formulaire dans access
    Par frevale dans le forum IHM
    Réponses: 3
    Dernier message: 03/12/2005, 19h42
  5. Ouvrir un Formulaire dans un control sous-Formulaire
    Par Berny03 dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 12h22

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