mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013
-
12 juin 2009 à 09:59
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013
-
19 juin 2009 à 17:13
Bonjour tout le monde,
J'ai un petit soucis, dans le cadre de mon stage, je dois cliquer sur l'une des pages intranet de mon entreprise, afin de mettre à jour les infromations de la base de données. Pour cela je dois cliquer sur le bouton "MAJ_SI" sur chaque intervenants de la base. Et lorsque j'appuie sur "MAJ_SI" avec la méthode OnClick, y a une petite pop up qui apparaît pour me demander si je suis sûre. j'aimerai provoquer un click automatique sur cette pop up.
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 12 juin 2009 à 10:23
Bonjour xpert12 et merci de ta réponse!
je suis allée voir sur le lien, en fait tu me conseillerai d'utiliser la fonction InvokeScript() c'est bien ça?
en fait je code en VBA, j'ai oublié de le préciser et j'ai vu que invokeScript() fonctionne sous VB6, mais peut-être pas sur VBA?
Aussi j'ai regardé sur internet, je n'ai pas trop compris comment s'utilise la fonction invokeScript() si tu peux m'éclairer un peu dessus ça serai cool, je suis pas très douée en VBA...hi!
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 12 juin 2009 à 10:38
Voici là partie correspondant au bouton sur lequel je dois cliquer:
----
Historique
MAJ SI
,
Donc je sais provoquer un click sur le bouton MAJ_SI (c'est ce que j'ai mis en rouge), avec la méthode OnClick(), et dès que j'ai cliqué la msgbox apparaît et je ne sais pas comment cliquer dessus. sacahant que c'est un algo sur pleins d'intervenant le but est d'automatiser la manoeuvre.
Merci beaucoup de ton aide xpert12!
et merci aux autres qui ont peut-être une idée à partager!
Vous n’avez pas trouvé la réponse que vous recherchez ?
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 12 juin 2009 à 10:39
J'oubliai, je n'ai pas accès aux fichiers javascripts. J'ai fais une recherche dans le code source, le code de cette fonction "setVariables" est dans un fichiers javascript externe apparement.
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 12 juin 2009 à 11:39
Je t'en prie. je fais d'autre truc en même temps aussi, j'ai un autre projet qui me prend la tête hi!
euh nan je n'ai pas mis mon webbrowser en mode silence.
je vais tester, c'est sensé empêcher la msgbox?
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 12 juin 2009 à 14:37
Re bonjour,
mon intranet re fonctionne enfin!
alors j'ai tester ta solution xpert12, sur quelques intervenants, une fois arrivé aux dernier intervenant la pop up apparaît alors que pour les premiers elle n'apparaît pas.
Une idée du prblème sur la dernière?
merci beaucoup!
Pour ma part je suis en train de faire des tests (même si j'ai aucune idée de ta page d'intranet puisque tu ne "peux" pas trouver le fichier .js externe : As-tu pensé à regarder dans INTERNET TEMPORALY FILES ?).
Je suis tombé sur un os alors je ronge. C'est moi qui doit te remercier car j'ai trouver 2-3 trucs qui vont bien me servir !!!!
**********************************
Bon, voici peut-être une solution.
s'il s'agit d'alertes javascript, on peut essayer de les modifier en commentaire avant qu'elles n'apparaissent avec un script du genre :
Dim s As Object
For Each s In WebBrowser1.Document.scripts
s.Text = Replace(s.Text, "alert", "//alert")
Next s
Tu fais de même s'il s'agit d'une méthode confirm() 'bouton oui/non
Dim s As Object
For Each s In WebBrowser1.Document.scripts
s.Text = Replace(s.Text, "confirm", "//confirm")
Next s
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 19 juin 2009 à 14:55
Bonjour xpert12!
bon j'ai fais un peu la morte pendant 1semaine! désolée! j'étais sur un autre projet qui m'a pris un peu tout mon temps!
Donc merci à toi pour toutes ces réponses, j'ai essayé de m'inspirer de ce que tu as fais avec le for each, mais je n'y arrive pas trop j'avou! Aussi, je ne peux pas publier le script, j'ai finalement pu y accéder, donc je t'envoi els bouts de code interressant.
je te montre en gros comment et structurer le code de la page avec les variables importantes:
Code source de la page:
<script type="text/javascript">
var mUrlMAJ_SI = (url de redirection)
var mAuthorise = 'false';
</script>
Fichier Javascript appelé :
if (variable == "MAJ_SI"){
document.forms[0].authentificationMAJ_SI.value = true;
window.document.forms[0].actionPage.value="consultation";
document.forms[0].action = mUrlMAJ_SI;
}
plus loin dans le code...
c'est cette fonction qui provoque la pop de confirmation
function traiteMAJ_SI(){
if(mAuthorise == 'true'){
if(document.forms[0].authentificationMAJ_SI.value == 'true'){
if(confirm("Voulez-vous forcer la MAJ de votre SI ?")){
document.forms[0].authentificationMAJ_SI.value = false;
document.forms[0].action = mUrlMAJ_SI;
document.forms[0].submit();
}
document.forms[0].authentificationMAJ_SI.value = false;
}
}
}
voilà le code important pour résoudre le problème. donc moi ce que j'essayai de faire c'est de faire en sorte que authentificationMAJ_SI reste à false tout le temps comme ça la fonction n''entre pas dans le if! mais aussi il faudra modifier document.forms[0].action afin qu'il charge la page sur l'url mUrlMAJ_SI. voilà toute l'histoire.
pense tu que c'est possible?
Merci beaucoup pour ton aide en tout cas!
bonne journée!
xpert12
Messages postés114Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention10 septembre 2010 19 juin 2009 à 16:08
Salut, c'est bien ce que je te disais. As-tu testé un truc du genre :
1-tu fais quelques changements avant de charger la page dans ton webbrowser avec la fonction VB Replace :
Dim s As Object
For Each s In WebBrowser1.Document.scripts
s.Text = Replace(s.Text, " if(confirm("Voulez-vous forcer la MAJ de votre SI ?")){", "if(document.write(parseInt("1.1")=1){"
Next s
En 2 mots, on remplace la boite de dialogue appelée avec la fonction confirm (qui nous embête) par une expression toute bête qui équivaut à 1=1. On garde les contrôles du script (autorisation, action...) et sa structure (pas d'erreur d'interprétation normalement).
2 - Tu charges la page dans ton webbrowser : la confirmation javascript ne devrait plus apparaître.
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 19 juin 2009 à 16:31
merci pour ta disponnibilité!!
j'ai déjà tester la 2e solution ça ne marchait pas, ça provoquais un message d'erreur.
La 1e sol, je sais pas si ça va marcher car cette fonction est dans un javascript à part, ce fichier est déclarer en haut de la page, donc elle n'est pas dans le code source de la page internet. bon je vais tester quand même mais bon...
sinon j'essayer de changer le contenu de onclick, sur mon boutton MAJ_SI. voici le code:
MAJ SI
à la place de setVariables('MAJ_SI')" , j'ai mis document.forms[0].action = mUrlMAJ_SI;
document.forms[0].submit();
mmmxtina
Messages postés67Date d'inscriptionmardi 26 mai 2009StatutMembreDernière intervention 9 avril 2013 19 juin 2009 à 16:32
oui, je mis suis prise à 3fois pour t'envoyer ce message, je ne sais pas trop ce qui se passe sur vbfrance.com, mais ça à un peu du mal de mon coté! hi!
xpert12
Messages postés114Date d'inscriptionlundi 5 février 2007StatutMembreDernière intervention10 septembre 2010 19 juin 2009 à 16:44
Excuse j'avais mal lu.
Sinon, t'as une solution toute con. Puisque tu as une copie de ton fichier externe js, tu le modifies comme tu veux (tu dégage ce confirm qui nous gonfle !!!!) et tu appelles ton fichier au lieu du fichier d'origine.