SendKeys webBrowser C#

Résolu
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016
- 17 juin 2014 à 21:34
jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
- 19 juin 2014 à 13:53
Bonsoir, j'aimerais savoir si c'était possible d'utiliser SendKeys dans un webBrowser, j'aimerais au chargement de ma page que le sendKeys de fasse, j'ai un code mais il ne fonctionne pas quelqu'un peut m'éclairer svp ?


HtmlDocument docHTML = this.webBrowser1.Document;
docHTML.GetElementById("password").SendKeys.Send("{g}");

Merci d'avance !

2 réponses

jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
358
17 juin 2014 à 22:10
Bonjour,

Tu mélange les contrôles présents dans ta userform -> le webbrowser et les éléments HTML présents dans le document affiché dans ton WebBrowser...

Peux-tu me dire à quoi correspond le code {g} que tu souhaites faire dans ton champ password ?
Il y a surement moyen de le faire de la même manière que tu as codé le reste de ton appli....

0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

17 juin 2014 à 22:30
Bonsoir, oui j'ai vu que le sendKeys ne fonctionne pas dessus, enfaite j'ai fini mon programme, je l'ai release mais le problème c'est que le webBrowser que j'ai mis en arrière plan, qui me permettait de mettre le mot de passe, sans activer les 150.000 scripts dont je ne comprend pas ^^ n'est pas au même endroit pour toutes les autre personnes, du coup j'ai voulu repartir sur la première idée '' simuler '' une touche de clavier dans le champs du mot de passe et après mettre un texte via un textBox, le fait de mettre juste une lettre active le script, du coup la lettre " g " correspond à une lettre au hasard.
0
jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
358
Modifié par jordane45 le 17/06/2014 à 23:13
Comme je te l'avais expliqué, les scripts présents sur la page se lancent, d'après ce que j'avais vu, suite au changement de focus...
Il suffit donc de donner le focus, mettre le texte désiré, mettre le focus sur un autre élément

Pour donner le focus à un élément, tu peux normalement faire :
 docHTML.GetElementById("password").focus();
0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

17 juin 2014 à 23:35
Oui je sais mais ça ne fonctionne pas correctement, quand je fais le focus sur la case et que je met le texte jusque ici rien de spécial, je passe le focus sur un autre element, je valide avec mon bouton et il me dit que pour la case " password " "Le mot de passe doit être différent de votre ID de connexion", le problème c'est que c'est le cas l'ID est bien différent du password mais il le considère comme l'ID :(
0
jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
358
18 juin 2014 à 09:47
le webBrowser que j'ai mis en arrière plan, qui me permettait de mettre le mot de passe, sans activer les 150.000 scripts dont je ne comprend pas ^^ n'est pas au même endroit pour toutes les autre personnes,
- Tu peux détaillé ?
- C'est quoi qui n'est pas toujours au même endroit ?
- Pourquoi tu ne parviens pas à faire lancer les scripts (même sans les comprendre...ça n'empêche pas de les lancer...)
0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

Modifié par Ulrichleboss le 18/06/2014 à 10:21
Enfaite comme je n'arriver pas à activer les "bon" scripts pour le fonctionnement de la page, j'ai mis le webBrowser en arrière plan avec le champs du mot de passe visible, comme ça l'utilisateur clique et rentre son mot de passe directement sur la page web mais le problème c'est que lorsque d'autres personnes l'ont essayés sur leur ordi, le webBrowser n'était pas en place, le champs de mot de passe était décaler et donc incliquable. Voici ce que ça donne sur l'ordi d'un autre

http://prntscr.com/3tz3pc

Alors que sur mon ordi ça donne sa :

http://prntscr.com/3tz566

Et au niveau des scripts y'en as quelques un mais qui ne sont pas vraiment utile, couleurs dans les cases de la date de naissance, et un script dans la case du nom de compte, mais il sert à activer les différents menu contextuels d'aide si il y'a une erreur sur la page, le script qui est sur la case de validation du mot de passe, tu m'avait dit dans la conversation précédente comment l'activer, mais le problème c'est que quand il est utiliser il me dit que le mot de passe ne doit pas correspondre à l'ID de connexion alors qu'ils sont déjà bien différent
0
jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
358
18 juin 2014 à 11:37
, le script qui est sur la case de validation du mot de passe, tu m'avait dit dans la conversation précédente comment l'activer,
Tu es bien certain d'avoir "respécté" l'ordre pour l'utiliser ?
Je veux dire :
1 - Tu remplis le champ password
2 - Tu remplis le champ de vérification de password
3 - Tu actives le script de contrôle.

Sachant que pour l'activation du script tu as écrit :
 object[] args = { textBox1.Text, "account_password" };
             docHTML.InvokeScript("validatePasswordAJAX", args);


Sachant que le script sur la page est appelé de la façon suivante :

 $("input#account_password").blur(function(){validatePasswordAJAX($('input#account_loginNameFieldInput').val(), $(this).val(), "account_passwordField");
                    });


Il attend donc : TROIS arguments ... et non 2 !
Il veut : La valeur du champ "account_loginNameFieldInput", La valeur du champ "confirmPasswordField" et , mis directement écrit en dur : "account_passwordField"

=> "account_loginNameFieldInput" c'est la valeur renseignée pour l'identifiant
=> "confirmPasswordField" => C'est la valeur que tu rentres pour confirmer le password



Ne pas oublier aussi que tu as un script sur le champ password qui vérifie sa compléxité ;
Sur le site c'est :
$(document).ready(function(){
					if(!is_ie8_or_ie7){
						$("#account_password").placeholder();
					}
					PasswordStrengthMeter.init("account_password","account_loginNameFieldInput","account_passwordField");
				});
.
Mais ça... tu dois surement pouvoir le gérer dans ton programme directement sans passer par le script de la page...et de toutes façons..il n'est surement pas obligatoire pour pouvoir valider ton compte
0
jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
358
18 juin 2014 à 11:42
PS: pour ce qui est du positionnement du champ ...il doit surement dépendre de la résolution écran de l'utilisateur et aussi peut être de la version du navigateur utilisé.
Il se peut aussi qu'il conserve en mémoire le ZOOM mis dans le navigateur de l'utilisateur lors de l'affichage dans ton composant webbrowser (qui utilise le IE se trouvant sur le poste du user).
0
Ulrichleboss
Messages postés
502
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
14 mai 2016

19 juin 2014 à 00:00
Problème résolu, le code à été complètement modifier et il est 100% opérationnel :D
0
jordane45
Messages postés
35793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
358
19 juin 2014 à 00:14
Tu as fait comment finalement ?
0