Bonsoir à tous,
Je suis novice sur AutoId, je me familiarise gentiment avec celui-ci.
Je suis en train de développer un programme pour automatiser des fonctions sur le net, mais je bloque sur quelque chose.
Jusqu'à maintenant j'utilisais la fonction " _IEGetObjById " mais voilà je bloque avec un bouton qui a un script java, et du coup le Id est variant à chaque connexion.
Comment contournez ce problème?
Merci à vous,
Baldwinos.
" IEGetObjById " ; Id variant comment faire?
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- walkson
- Modérateur
- Messages : 1020
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: " IEGetObjById " ; Id variant comment faire?
Bonjour,
Difficile de vous répondre sans avoir le code de la page !
Il existe plusieurs méthodes: par collection, par Id, par Name ou encore par la valeur du button
Un exemple qui utilise plusieurs méthodes
#include <IE.au3>
#include <MsgBoxConstants.au3>
Local $oIE = _IECreate("https://candidat.pole-emploi.fr/candidat/espacepersonnel/authentification")
Local $oInputs = _IETagNameGetCollection($oIE, "input")
Local $sTxt = ""
Local $aa ,$bb, $cc, $dd
For $oInput In $oInputs
$sTxt &= $oInput.type & @CRLF
$aa &= $oInput.value & @CRLF
If $oInput.value = "Poursuivre" Then $bb = $oInput.id
If $oInput.value = "Poursuivre" Then $dd = $oInput.name
Next
MsgBox($MB_SYSTEMMODAL, "Input Type", " Types :" & @CRLF & $sTxt)
MsgBox(0,"toutes valeurs",$aa)
MsgBox(0,"id",$bb)
$cc = _IEGetObjById($oIE,$bb)
MsgBox(0,"id.value", $cc.value)
$cc = _IEGetObjByName($oIE,$dd)
MsgBox(0,"name.value 1",@extended &">>"& $cc.value)
$cc = _IEGetObjByName($oIE,"boutonContinuer");méthode directe (et simple)
MsgBox(0,"name.value 2",@extended &">>"& $cc.value)
_IEQuit($oIE)
Selon le site
Il faut regarder le code de la page et tester
En espérant vous avoir été utile
Difficile de vous répondre sans avoir le code de la page !
Il existe plusieurs méthodes: par collection, par Id, par Name ou encore par la valeur du button
Un exemple qui utilise plusieurs méthodes
#include <IE.au3>
#include <MsgBoxConstants.au3>
Local $oIE = _IECreate("https://candidat.pole-emploi.fr/candidat/espacepersonnel/authentification")
Local $oInputs = _IETagNameGetCollection($oIE, "input")
Local $sTxt = ""
Local $aa ,$bb, $cc, $dd
For $oInput In $oInputs
$sTxt &= $oInput.type & @CRLF
$aa &= $oInput.value & @CRLF
If $oInput.value = "Poursuivre" Then $bb = $oInput.id
If $oInput.value = "Poursuivre" Then $dd = $oInput.name
Next
MsgBox($MB_SYSTEMMODAL, "Input Type", " Types :" & @CRLF & $sTxt)
MsgBox(0,"toutes valeurs",$aa)
MsgBox(0,"id",$bb)
$cc = _IEGetObjById($oIE,$bb)
MsgBox(0,"id.value", $cc.value)
$cc = _IEGetObjByName($oIE,$dd)
MsgBox(0,"name.value 1",@extended &">>"& $cc.value)
$cc = _IEGetObjByName($oIE,"boutonContinuer");méthode directe (et simple)
MsgBox(0,"name.value 2",@extended &">>"& $cc.value)
_IEQuit($oIE)
_IETagNameGetCollection($oIE, "input")
pourait être _IETagNameGetCollection($oIE, "button")
Il faut regarder le code de la page et tester
En espérant vous avoir été utile
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: " IEGetObjById " ; Id variant comment faire?
Tout d'abord merci de votre réponse.
Je ne savais pas si, légalement, je pouvais copier un extrait du code de la page.
Voici l'extrait du bouton en question. Excusez moi d'avance si je n'ai pas le droit de le faire, je le supprimerais de suite.
En attendant un retour de votre part, je vais plancher sur les conseils que vous m'avez donné.
Je ne savais pas si, légalement, je pouvais copier un extrait du code de la page.
Voici l'extrait du bouton en question. Excusez moi d'avance si je n'ai pas le droit de le faire, je le supprimerais de suite.
Code : Tout sélectionner
<button type="submit" value="Valider" id="button59c422d7df91f" class="green ">
<div class="button-container addHoverClick">
<div class="button-background">
<div class="buttonStart">
<div class="buttonEnd">
<div class="buttonMiddle"></div>
</div>
</div>
</div>
<div class="button-content">Valider</div>
</div>
</button>
<script type="text/javascript" id="button59c422d7df91f_script">
window.addEvent('domready', function() {
if($('button59c422d7df91f')) {
$('button59c422d7df91f').addEvent('click', function () {
window.fireEvent('buttonClicked', [this, {"type":"submit","value":"Valider","name":"","id":"button59c422d7df91f","class":"green ","title":"","confirm":"","onclick":""}]);
});
}
});
</script>
Re: " IEGetObjById " ; Id variant comment faire?
A défaut de passer pour un véritable débutant en la matière.. Je sèche un peu la !
Ne serait est ce pas plus simple de rentrer une ligne de code pour retrouver la collection en l’occurrence < Button > et sa valeur < Valider > ?
Comment définir la valeur du button?
Et deuxièmement, je ne comprend pas la ligne de code MsgBox. Que dois-je mettre dans " Form Input Type " et " Form: " ?
Ne serait est ce pas plus simple de rentrer une ligne de code pour retrouver la collection en l’occurrence < Button > et sa valeur < Valider > ?
Code : Tout sélectionner
Local $oIE = _IEcreate("www.example.net")
Local $oInputs = _IETagNameGetCollection($oIE, "button")
Local $sTxt = ""
For $oInput In $oInputs
$sTxt &= $oInput.type & @CRLF
Next
MsgBox($MB_SYSTEMMODAL, "Form Input Type", "Form: " & $oInput.form.name & @CRLF & @CRLF & " Types :" & @CRLF & $sTxt)
Et deuxièmement, je ne comprend pas la ligne de code MsgBox. Que dois-je mettre dans " Form Input Type " et " Form: " ?
Re: " IEGetObjById " ; Id variant comment faire?
J'ai enfin trouvé la solution
Le seul hic, il y a plusieurs bouton avec ces références.
Comment sélection celui d'une <div class> précise?
Code : Tout sélectionner
$oCorrectObj = ""
$tags = $oIE.document.GetElementsByTagName("button")
For $tag in $tags
$class_value = $tag.GetAttribute("class")
If string($class_value) = "blue" Then
$oCorrectObj = $tag
Comment sélection celui d'une <div class> précise?