Page 1 sur 1
[..] Obtenir valeur numérique sur un site web
Posté : jeu. 26 juin 2014 12:33
par shiirosan
Bonjour/Bonsoir. J'ai chercher assez rapidement sur le forum, et je n'ai pas cru trouvé de sujet pouvant m'aider.
Ce que je cherche à faire est assez simple, mais je comprend tres mal l'UDF IE...
Je cherche juste à obtenir le nombre sur un objet de type texte.
► Afficher le texteCode AUTOIT
Code : Tout sélectionner
#include <IE.au3>
Local $oIe=_IECreate(@ScriptDir&"/test.html", 0, 1)
Local $oDiv = _IEGetObjById($oIE, "nmber")
Sleep(5000)
MsgBox(0,"",$oDiv)
► Afficher le texteCode HTML
Code : Tout sélectionner
<html>
<head>
<script language="javascript">
var valeur=0;
function modifier(increment) {
valeur+=increment;
document.getElementById('nmber').value=valeur;
}
</script>
</head>
<body>
<div style="text-align:center">
<input type="text" id="nmber" value="0" size="3" readonly="true" style="background-color:#FFFFFF; border:#FFFFFF none 0px; text-align:center; font-size:30px">
<input type="button" value="+1" onClick="modifier(1)"></div>
<script language="javascript">
document.getElementById('nmber').value=valeur;
</script>
</body>
</html>
Merci de l'aide que vous pourrez me fournir.
Re: [..] Obtenir valeur numérique sur un site web
Posté : jeu. 26 juin 2014 13:06
par PandiPanda
Bonjour,
ceci?
► Afficher le texte
Code : Tout sélectionner
#include <IE.au3>
Local $oIe=_IECreate(@ScriptDir&"/test.html", 0, 1)
Local $oDiv = _IEGetObjById($oIE, "nmber")
If @error Then
MsgBox(64,"error",@error)
Else
MsgBox(0,"",$oDiv.getAttribute("value"))
Sleep(5000)
; ici commencer a incrementer ^^
$oDiv = _IEGetObjById($oIE, "nmber")
MsgBox(0,"",$oDiv.getAttribute("value"))
EndIf
Re: [..] Obtenir valeur numérique sur un site web
Posté : jeu. 26 juin 2014 13:46
par jguinch
PandiPanda, j'ai pas trop compris l'histoire de l'incrémentation
Sinon, un simple
$oDiv.value suffit
► Afficher le texte
Code : Tout sélectionner
#include <IE.au3>
Local $oIe=_IECreate(@ScriptDir&"/test.html", 0, 1)
Local $oDiv = _IEGetObjById($oIE, "nmber")
MsgBox(0,"",$oDiv.value)
Re: [..] Obtenir valeur numérique sur un site web
Posté : jeu. 26 juin 2014 14:14
par PandiPanda
j'ai supposer qu'il avait mit un sleep 5000 pour pouvoir incrementer manuellement sur la page simplement ^^
Re: [..] Obtenir valeur numérique sur un site web
Posté : ven. 27 juin 2014 14:08
par shiirosan
PandiPanda : Oui c'est exactement mon idée. Le script m'indique une erreur 4 (Invalid Object Type). Le probleme pourrait-il venir du fait que la page sois sur mon ordinateur ?
jguinch : Suite à l'execution de votre script j'ai les erreurs suivantes :
► Afficher le texteErreur SciTe
Code : Tout sélectionner
--> IE.au3 T3.0-1 Error from function _IELoadWait, $_IEStatus_ClientDisconnected (-2147023179, Browser has been deleted prior to operation.)
--> IE.au3 T3.0-1 Error from function _IEGetObById, $_IEStatus_InvalidObjectType
"C:\Users\Shiiro\Desktop\Nouveau Script AutoIt v3 (2).au3" (5) : ==> Variable must be of type "Object".:
MsgBox(0,"",$oDiv.value)
MsgBox(0,"",$oDiv^ ERROR
->14:02:01 AutoIt3.exe ended.rc:1
Je vais essayer d'uploader ma page, ainsi que voir si les erreurs sont les memes en executant le script de PandiPanda.
edit : L'erreur du script de PandiPanda
► Afficher le texte2nd erreur SciTe
Code : Tout sélectionner
--> IE.au3 T3.0-1 Error from function _IELoadWait, $_IEStatus_ClientDisconnected (-2147023179, Browser has been deleted prior to operation.)
--> IE.au3 T3.0-1 Error from function _IEGetObById, $_IEStatus_InvalidObjectType
+>14:04:26 AutoIt3.exe ended.rc:0
Le peu que j'ai compris de cette erreur c'est qu'Internet Explorer n'es pas retrouver par mon script...
2nd edit : L'erreur a disparu ! J'ai tout simplement uploadé ma page sur mon ftp et ça fonctionne (presque). Je pense que le probleme vient de ma page en html...
Re: [..] Obtenir valeur numérique sur un site web
Posté : ven. 27 juin 2014 14:08
par jguinch
Avec ton fichier HTML enregistré en tant que test.html et mon code enregistré dans le même répertoire, ça fonctionne.
Tu utilises quoi comme code ?
Re: [..] Obtenir valeur numérique sur un site web
Posté : lun. 30 juin 2014 14:16
par orax
J'ai la même erreur. D'après ce que j'ai compris, c'est lié à la sécurité dans les dernières versions d'IE.
En exécutant le script avec des droits administrateurs (avec #RequireAdmin), plus d'erreur. Il doit y avoir d'autres solutions que celle-ci. Voir la partie remarques de _IECreate() dans la doc :
http://www.autoitscript.com/autoit3/doc ... Create.htm
Autre chose quand tu faisais :
$oDiv est un objet, tu ne peux pas l'afficher directement avec MsgBox(). C'est marqué dans la doc, la valeur retournée représente un nœud du DOM. Celui-ci est sous forme d'objet (pas textuelle). Il y a toute fois $oDiv.outerHTML pour récupérer le HTML, ça doit être documenté sur MSDN.