Situation :
Une machine est contrôlée via un interface web
Pour faire une tâche, la seule solution est de cliquer sur un bouton
située sur une page html
Je connais l'adresse de la page et le nom du bouton sur cette page...
J'aimerais automatiser la tâche ...
( ...pour la planifier)
Ouvrir la page est facile
( avec la méthode navigate de l'objet IE)
mais ...
Est-il raisonnable d'espérer faire un script
qui, en plus, envoie l'évènement "clic sur le bouton"
sur cette page...
Situation : Une machine est contrôlée via un interface web Pour faire une tâche, la seule solution est de cliquer sur un bouton située sur une page html
Je connais l'adresse de la page et le nom du bouton sur cette page...
J'aimerais automatiser la tâche ... ( ...pour la planifier)
Ouvrir la page est facile ( avec la méthode navigate de l'objet IE) mais ... Est-il raisonnable d'espérer faire un script qui, en plus, envoie l'évènement "clic sur le bouton" sur cette page...
Merci d'avance,
Tout dépend de la page web, mais sur une page simple (en VBS) :
Dim oIE, sURL ' Création de l'objet IE Set oIE=CreateObject("InternetExplorer.Application") ' Chargement de la page web sURL = "LaPage.htm" oIE.navigate sURL:oIE.Visible=True ' Si le bouton est nommé et dans un FORM nommé If TypeName(oIE.Document.Forms("NameFORM").Elements("NameINPUT_BUTTON"))<>"Nothing" then oIE.Document.Forms("NameFORM").Elements("NameINPUT_BUTTON").Click() End If
Bonjour,
Lotre a écrit :
Bonjour,
Situation :
Une machine est contrôlée via un interface web
Pour faire une tâche, la seule solution est de cliquer sur un bouton
située sur une page html
Je connais l'adresse de la page et le nom du bouton sur cette page...
J'aimerais automatiser la tâche ...
( ...pour la planifier)
Ouvrir la page est facile
( avec la méthode navigate de l'objet IE)
mais ...
Est-il raisonnable d'espérer faire un script
qui, en plus, envoie l'évènement "clic sur le bouton"
sur cette page...
Merci d'avance,
Tout dépend de la page web, mais sur une page simple (en VBS) :
Dim oIE, sURL
' Création de l'objet IE
Set oIE=CreateObject("InternetExplorer.Application")
' Chargement de la page web
sURL = "LaPage.htm"
oIE.navigate sURL:oIE.Visible=True
' Si le bouton est nommé et dans un FORM nommé
If TypeName(oIE.Document.Forms("NameFORM").Elements("NameINPUT_BUTTON"))<>"Nothing" then
oIE.Document.Forms("NameFORM").Elements("NameINPUT_BUTTON").Click()
End If
Situation : Une machine est contrôlée via un interface web Pour faire une tâche, la seule solution est de cliquer sur un bouton située sur une page html
Je connais l'adresse de la page et le nom du bouton sur cette page...
J'aimerais automatiser la tâche ... ( ...pour la planifier)
Ouvrir la page est facile ( avec la méthode navigate de l'objet IE) mais ... Est-il raisonnable d'espérer faire un script qui, en plus, envoie l'évènement "clic sur le bouton" sur cette page...
Merci d'avance,
Tout dépend de la page web, mais sur une page simple (en VBS) :
Dim oIE, sURL ' Création de l'objet IE Set oIE=CreateObject("InternetExplorer.Application") ' Chargement de la page web sURL = "LaPage.htm" oIE.navigate sURL:oIE.Visible=True ' Si le bouton est nommé et dans un FORM nommé If TypeName(oIE.Document.Forms("NameFORM").Elements("NameINPUT_BUTTON"))<>"Nothing" then oIE.Document.Forms("NameFORM").Elements("NameINPUT_BUTTON").Click() End If
Méta-MCI \(MVP\)
Bonjour !
Perso, je serais passé par un document.getElementById("IDDUBOUTON") Mais, le principe général resterait très proche. - @-salutations -- Michel Claveau
Bonjour !
Perso, je serais passé par un document.getElementById("IDDUBOUTON")
Mais, le principe général resterait très proche.
-
@-salutations
--
Michel Claveau
Je vais tester ça quand j'irais sur le site ( Mercredi matin)
HB
Lotre
bonjour,
Suite de l'aventure :
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page 1. Alerte de sécurité il faut accepter le certificat ... ( la machine jointe tourne sous une vieille distrib linux ...)
2. Connexion à la machine ( login + mot de passe + entrée)
En suite on peut arriver à la bonne page directement avec objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Je me sers donc de Objet_WsShell.AppActivate et Objet_WsShell.SendKeys (des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click qui est en fait un "Entrée" sur un bouton "focused" et la tâche se fait ... ....
Je vais tester ça quand j'irais sur le site ( Mercredi matin)
HB
bonjour,
Suite de l'aventure :
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page
1. Alerte de sécurité il faut accepter le certificat ...
( la machine jointe tourne sous une vieille distrib linux ...)
2. Connexion à la machine ( login + mot de passe + entrée)
En suite on peut arriver à la bonne page directement avec
objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Je me sers donc de
Objet_WsShell.AppActivate
et
Objet_WsShell.SendKeys
(des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click
qui est en fait un "Entrée" sur un bouton "focused"
et la tâche se fait ... ....
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page 1. Alerte de sécurité il faut accepter le certificat ... ( la machine jointe tourne sous une vieille distrib linux ...)
2. Connexion à la machine ( login + mot de passe + entrée)
En suite on peut arriver à la bonne page directement avec objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Je me sers donc de Objet_WsShell.AppActivate et Objet_WsShell.SendKeys (des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click qui est en fait un "Entrée" sur un bouton "focused" et la tâche se fait ... ....
Je vais tester ça quand j'irais sur le site ( Mercredi matin)
HB
jbongran
"Lotre" a écrit dans le message de news:%
bonjour,
Suite de l'aventure :
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page 1. Alerte de sécurité il faut accepter le certificat ... ( la machine jointe tourne sous une vieille distrib linux ...)
2. Connexion à la machine ( login + mot de passe + entrée)
En suite on peut arriver à la bonne page directement avec objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Je me sers donc de Objet_WsShell.AppActivate et Objet_WsShell.SendKeys (des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click qui est en fait un "Entrée" sur un bouton "focused" et la tâche se fait ... ....
L'usage de wcat, avec son enregistreur de navigation (sorte de proxy local qui logue tout ce que le client envoi au serveur) peut être utile afin de déterminer les paramètres requis pour le formulaire. Déjà mis un tel système en production avec tinyget mais sans certificat.
Sinon, il existe aussi le classique wfetch, natif sous Li..ux mais porté sous Windows
"Lotre" <moi@pas.la.ici> a écrit dans le message de
news:%23M1CX3VrJHA.3444@TK2MSFTNGP04.phx.gbl...
bonjour,
Suite de l'aventure :
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page
1. Alerte de sécurité il faut accepter le certificat ...
( la machine jointe tourne sous une vieille distrib linux ...)
2. Connexion à la machine ( login + mot de passe + entrée)
En suite on peut arriver à la bonne page directement avec
objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Je me sers donc de
Objet_WsShell.AppActivate
et
Objet_WsShell.SendKeys
(des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click
qui est en fait un "Entrée" sur un bouton "focused"
et la tâche se fait ... ....
Je vais tester ça quand j'irais sur le site ( Mercredi matin)
HB
TinyGet, outil en ligne de commande du ressource kit de IIS peut
(certainement) faire cela
http://support.microsoft.com/kb/840671/fr#12
L'usage de wcat, avec son enregistreur de navigation (sorte de proxy local
qui logue tout ce que le client envoi au serveur) peut être utile afin de
déterminer les paramètres requis pour le formulaire.
Déjà mis un tel système en production avec tinyget mais sans certificat.
Sinon, il existe aussi le classique wfetch, natif sous Li..ux mais porté
sous Windows
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page 1. Alerte de sécurité il faut accepter le certificat ... ( la machine jointe tourne sous une vieille distrib linux ...)
2. Connexion à la machine ( login + mot de passe + entrée)
En suite on peut arriver à la bonne page directement avec objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Je me sers donc de Objet_WsShell.AppActivate et Objet_WsShell.SendKeys (des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click qui est en fait un "Entrée" sur un bouton "focused" et la tâche se fait ... ....
L'usage de wcat, avec son enregistreur de navigation (sorte de proxy local qui logue tout ce que le client envoi au serveur) peut être utile afin de déterminer les paramètres requis pour le formulaire. Déjà mis un tel système en production avec tinyget mais sans certificat.
Sinon, il existe aussi le classique wfetch, natif sous Li..ux mais porté sous Windows
Lognoul Marc [MVP]
> Sinon, il existe aussi le classique wfetch, natif sous Li..ux mais porté sous Windows
wfetch ou wget?
Marc
__________ Information from ESET NOD32 Antivirus, version of virus signature database 3961 (20090325) __________
Mais... il y a un "mais" Ce n'est pas ainsi que ce script doit servir :
Avec : - session admin vérrouillée - une tâche planifiée lance le script...
ça bloque dès la première fenètre :
Do while not Objet_WsShell.AppActivate "Le titre" Wscript.Sleep 200 loop
reste en plan .....
Une idée ???
Il me semble que la méthode SendKeys n'agit que sur la fenêtre active et lorsque la station est verrouillée ce n'est plus ta fenêtre qui est active c'est pour cela qu'il faudrait plutot agir sur les objets.
Bonjour,
Lotre a écrit :
bonjour,
Suite de l'aventure :
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page
1. Alerte de sécurité il faut accepter le certificat ...
A chaque fois que tu ouvre cette même page ?
( la machine jointe tourne sous une vieille distrib linux ...)
>
2. Connexion à la machine ( login + mot de passe + entrée)
Faut voir le code html afin d'agir sur les objets/éléments de la page.
En suite on peut arriver à la bonne page directement avec objet_ie.navigate
Le formulaire n'est pas nommé et c'est du php...
Il suffit que objets/éléments soient accessiblent.
Je me sers donc de
Objet_WsShell.AppActivate
et
Objet_WsShell.SendKeys
(des caractères + des "{TAB}" + des "~"
En mode "normal" le script fonctionne parfaitement .
La page s'ouvre, les "OK" se suivent jusqu'au dernier click
qui est en fait un "Entrée" sur un bouton "focused"
et la tâche se fait ... ....
Mais... il y a un "mais"
Ce n'est pas ainsi que ce script doit servir :
Avec :
- session admin vérrouillée
- une tâche planifiée lance le script...
ça bloque dès la première fenètre :
Do while not Objet_WsShell.AppActivate "Le titre"
Wscript.Sleep 200
loop
reste en plan .....
Une idée ???
Il me semble que la méthode SendKeys n'agit que sur la fenêtre active
et lorsque la station est verrouillée ce n'est plus ta fenêtre qui
est active c'est pour cela qu'il faudrait plutot agir sur les objets.
Mais... il y a un "mais" Ce n'est pas ainsi que ce script doit servir :
Avec : - session admin vérrouillée - une tâche planifiée lance le script...
ça bloque dès la première fenètre :
Do while not Objet_WsShell.AppActivate "Le titre" Wscript.Sleep 200 loop
reste en plan .....
Une idée ???
Il me semble que la méthode SendKeys n'agit que sur la fenêtre active et lorsque la station est verrouillée ce n'est plus ta fenêtre qui est active c'est pour cela qu'il faudrait plutot agir sur les objets.
Lotre
bonsoir ,
et merci de prendre la peine de m'aider.
Michel__D wrote:
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page 1. Alerte de sécurité il faut accepter le certificat ...
A chaque fois que tu ouvre cette même page ?
Oui il s'agit d'une fenètre "Alerte de sécurité" et il est question d'un certificat invalide ce qui est inévitable : La machine à piloter ainsi tourne avec une antique distribution linux donc ... les certificats reconnus par W2003 ... pas trop ...
Je ne sais pas si l'on peut "dire à IE" d'accepter la connexion à cette page une fois pour toutes ...
2. Connexion à la machine ( login + mot de passe + entrée)
Faut voir le code html afin d'agir sur les objets/éléments de la page.
Il s'agit d'une authentification dans une petite fenètre nommée : "connexion à <ip_de_la_machine>" Je ne pense pas que l'on puisse agir sur la page html (php) directement. Il s'agit d'une connexion en https. Je regarderais de plus près mais cela ressemble plus à une boite de dialogue windows qu'à une fenêtre fille affichée en html par IE... Je peux enregistrer le mot de passe ; ce qui limite le travail... mais il faut quand même envoyer "Entrée" sur le bon bouton ...
En suite on peut arriver à la bonne page directement avec objet_ie.navigate Le formulaire n'est pas nommé et c'est du php...
Il suffit que objets/éléments soient accessibles.
sans noms je ne vois pas comment .... mais .... si je demande des conseils c'est bien j'ai conscience de mes vastes lacunes ;o)
Il me semble que la méthode SendKeys n'agit que sur la fenêtre active et lorsque la station est verrouillée ce n'est plus ta fenêtre qui est active c'est pour cela qu'il faudrait plutot agir sur les objets.
Je m'en suis douté ... Une autre solution serait peut-être de déverrouiller la session puis de la re-verrouiller à la fin
mais, cà non plus je ne sais pas faire ;o(((
HB
bonsoir ,
et merci de prendre la peine de m'aider.
Michel__D wrote:
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la
page
1. Alerte de sécurité il faut accepter le certificat ...
A chaque fois que tu ouvre cette même page ?
Oui il s'agit d'une fenètre "Alerte de sécurité"
et il est question d'un certificat invalide ce qui est inévitable :
La machine à piloter ainsi tourne avec une antique distribution linux
donc ... les certificats reconnus par W2003 ... pas trop ...
Je ne sais pas si l'on peut "dire à IE" d'accepter
la connexion à cette page une fois pour toutes ...
2. Connexion à la machine ( login + mot de passe + entrée)
Faut voir le code html afin d'agir sur les objets/éléments de la
page.
Il s'agit d'une authentification dans une petite fenètre nommée :
"connexion à <ip_de_la_machine>"
Je ne pense pas que l'on puisse agir sur la page html (php)
directement. Il s'agit d'une connexion en https.
Je regarderais de plus près mais cela ressemble plus à une boite de
dialogue windows
qu'à une fenêtre fille affichée en html par IE...
Je peux enregistrer le mot de passe ; ce qui limite le travail...
mais il faut quand même envoyer "Entrée" sur le bon bouton ...
En suite on peut arriver à la bonne page directement avec
objet_ie.navigate Le formulaire n'est pas nommé et c'est du php...
Il suffit que objets/éléments soient accessibles.
sans noms je ne vois pas comment
.... mais .... si je demande des conseils
c'est bien j'ai conscience de mes vastes lacunes ;o)
Il me semble que la méthode SendKeys n'agit que sur la fenêtre
active
et lorsque la station est verrouillée ce n'est plus ta fenêtre qui
est active c'est pour cela qu'il faudrait plutot agir sur les
objets.
Je m'en suis douté ...
Une autre solution serait peut-être de déverrouiller la session
puis de la re-verrouiller à la fin
En fait, il y a des fenètres qui s'ouvrent avant d'arriver à la page 1. Alerte de sécurité il faut accepter le certificat ...
A chaque fois que tu ouvre cette même page ?
Oui il s'agit d'une fenètre "Alerte de sécurité" et il est question d'un certificat invalide ce qui est inévitable : La machine à piloter ainsi tourne avec une antique distribution linux donc ... les certificats reconnus par W2003 ... pas trop ...
Je ne sais pas si l'on peut "dire à IE" d'accepter la connexion à cette page une fois pour toutes ...
2. Connexion à la machine ( login + mot de passe + entrée)
Faut voir le code html afin d'agir sur les objets/éléments de la page.
Il s'agit d'une authentification dans une petite fenètre nommée : "connexion à <ip_de_la_machine>" Je ne pense pas que l'on puisse agir sur la page html (php) directement. Il s'agit d'une connexion en https. Je regarderais de plus près mais cela ressemble plus à une boite de dialogue windows qu'à une fenêtre fille affichée en html par IE... Je peux enregistrer le mot de passe ; ce qui limite le travail... mais il faut quand même envoyer "Entrée" sur le bon bouton ...
En suite on peut arriver à la bonne page directement avec objet_ie.navigate Le formulaire n'est pas nommé et c'est du php...
Il suffit que objets/éléments soient accessibles.
sans noms je ne vois pas comment .... mais .... si je demande des conseils c'est bien j'ai conscience de mes vastes lacunes ;o)
Il me semble que la méthode SendKeys n'agit que sur la fenêtre active et lorsque la station est verrouillée ce n'est plus ta fenêtre qui est active c'est pour cela qu'il faudrait plutot agir sur les objets.
Je m'en suis douté ... Une autre solution serait peut-être de déverrouiller la session puis de la re-verrouiller à la fin
mais, cà non plus je ne sais pas faire ;o(((
HB
Gilles LAURENT [MVP]
"Lotre" a écrit dans le message de news: | bonsoir ,
Bonsoir,
| et merci de prendre la peine de m'aider.
Avez-vous étudié les propositions évoquées par jbongran ? Je ne connais pas grand chose à ce domaine mais après lecture attentive de l'article du support Microsoft cité dans son Post, je pense que les pistes sont très prometteuses ... Pour rappel : Les outils du Kit de ressources IIS 6.0 http://support.microsoft.com/kb/840671/fr#12
"Lotre" <moi@pas.la.ici> a écrit dans le message de
news:OpFEuTYrJHA.5356@TK2MSFTNGP03.phx.gbl
| bonsoir ,
Bonsoir,
| et merci de prendre la peine de m'aider.
Avez-vous étudié les propositions évoquées par jbongran ? Je ne connais
pas grand chose à ce domaine mais après lecture attentive de l'article
du support Microsoft cité dans son Post, je pense que les pistes sont
très prometteuses ... Pour rappel :
Les outils du Kit de ressources IIS 6.0
http://support.microsoft.com/kb/840671/fr#12
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"Lotre" a écrit dans le message de news: | bonsoir ,
Bonsoir,
| et merci de prendre la peine de m'aider.
Avez-vous étudié les propositions évoquées par jbongran ? Je ne connais pas grand chose à ce domaine mais après lecture attentive de l'article du support Microsoft cité dans son Post, je pense que les pistes sont très prometteuses ... Pour rappel : Les outils du Kit de ressources IIS 6.0 http://support.microsoft.com/kb/840671/fr#12
Avez-vous étudié les propositions évoquées par jbongran ? Je ne connais pas grand chose à ce domaine mais après lecture attentive de l'article du support Microsoft cité dans son Post, je pense que les pistes sont très prometteuses ... Pour rappel : Les outils du Kit de ressources IIS 6.0 http://support.microsoft.com/kb/840671/fr#12
je verrais ça demain (si j'ai le temps...) car je suis chez moi ;o) J' installerais le reskit IIS sur le serveur (2003) qui doit contacter la machine linux en https ...
donc je ne peux pas encore savoir si cela va me servir
Ceci étant, j'ai l'impression que ces outils sont faits pour les relations client/serveur en http avec IIS sur une machine MS (ce qui serait logique) Or, là c'est pas franchement le cas Et j'ai bien peur que le pb des deux premières boites de dialogue "Alerte de sécurité" puis "connexion à <ip>" reste entier.
HB
bonsoir,
Gilles LAURENT [MVP] wrote:
Avez-vous étudié les propositions évoquées par jbongran ? Je ne
connais pas grand chose à ce domaine mais après lecture attentive de
l'article du support Microsoft cité dans son Post, je pense que les
pistes sont très prometteuses ... Pour rappel :
Les outils du Kit de ressources IIS 6.0
http://support.microsoft.com/kb/840671/fr#12
je verrais ça demain (si j'ai le temps...) car je suis chez moi ;o)
J' installerais le reskit IIS sur le serveur (2003) qui doit contacter
la machine linux en https ...
donc je ne peux pas encore savoir si cela va me servir
Ceci étant, j'ai l'impression que ces outils sont faits pour les
relations client/serveur
en http avec IIS sur une machine MS (ce qui serait logique)
Or, là c'est pas franchement le cas
Et j'ai bien peur que le pb des deux premières boites de dialogue
"Alerte de sécurité" puis "connexion à <ip>" reste entier.
Avez-vous étudié les propositions évoquées par jbongran ? Je ne connais pas grand chose à ce domaine mais après lecture attentive de l'article du support Microsoft cité dans son Post, je pense que les pistes sont très prometteuses ... Pour rappel : Les outils du Kit de ressources IIS 6.0 http://support.microsoft.com/kb/840671/fr#12
je verrais ça demain (si j'ai le temps...) car je suis chez moi ;o) J' installerais le reskit IIS sur le serveur (2003) qui doit contacter la machine linux en https ...
donc je ne peux pas encore savoir si cela va me servir
Ceci étant, j'ai l'impression que ces outils sont faits pour les relations client/serveur en http avec IIS sur une machine MS (ce qui serait logique) Or, là c'est pas franchement le cas Et j'ai bien peur que le pb des deux premières boites de dialogue "Alerte de sécurité" puis "connexion à <ip>" reste entier.