[R] Position élément dans page web IE

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

[R] Position élément dans page web IE

#1

Message par jrmy56 »

Bonjour,

Je souhaiterai faire un clic sur un élément d'une page web Internet Explorer.

L'élément est visible, mais au bas de la page web. Donc cela nécessite de descendre avec la barre de défilement.

Voici le code AutoIT que j'ai essayé :

Code : Tout sélectionner

#include <IE.au3>

Local $oIE = _IEAttach("Page web IE", "title")
Local $oForm = _IEFormGetObjByName($oIE, "form")
Local $oInputFile = _IEFormElementGetObjByName($oForm, "inputFile")

_IEAction($oInputFile, "scrollintoview")

Local $iPositionInputFileX = _IEPropertyGet($oInputFile, "screenx") + Int(_IEPropertyGet($oInputFile, "width")/2)
Local $iPositionInputFileY = _IEPropertyGet($oInputFile, "screeny") + Int(_IEPropertyGet($oInputFile, "height")/2)

MouseClick("left", $iPositionInputFileX, $iPositionInputFileY, 1, 0)
Or, la position retournée par _IEPropertyGet($oInputFile, "screenx") correspond à la position avant _IEAction($oInputFile, "scrollintoview")

J'ai essayé aussi de récupérer la page IE, le formulaire et l'input après scrollintoview, sans succès :


Merci d'avance pour votre aide
Modifié en dernier par jrmy56 le sam. 13 déc. 2014 21:16, modifié 3 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Position élément dans page web IE

#2

Message par TommyDDR »

Code : Tout sélectionner

#include <IE.au3>

Local $oIE = _IEAttach("Page web IE", "title")
Local $oForm = _IEFormGetObjByName($oIE, "form")
Local $oInputFile = _IEFormElementGetObjByName($oForm, "inputFile")

;_IEAction($oInputFile, "scrollintoview")
_IEAction($oInputFile, "click")
 
?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

Re: Position élément dans page web IE

#3

Message par jrmy56 »

Exactement, ce que j'aurai proposé !

Lorsque je passe par le fonction _IEAction($oInputFile, "click").

La fenêtre de sélection de fichier s'ouvre bien. Je sélectionne un fichier et je clique sur Ouvrir.

Mais IE version 9 ne semble rien uploader.

Avec MouseClick, c'est différent ! La simulation du clic gauche de la souris est meilleur. Et le fichier est envoyé !

Seulement, je n'arrive pas récupérer la véritable position de l'élément InputFile.
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

Re: Position élément dans page web IE

#4

Message par jrmy56 »

Je suis preneur, si quelqu'un connait une autre solution pour réaliser un clic gauche comme MouseClick("left").

Le besoin global est d'envoyer un fichier via input type=file.

J'ai déjà essayé cela, sans succès :

Code : Tout sélectionner

_IEAction($oInputFile, "focus")
$oInputFile.fireEvent("onmouseover")
$oInputFile.fireEvent("onmousedown")
$oInputFile.fireEvent("onmouseup")

_IEAction($oInputFile, "click") ; Indispensable pour le clic, mais ne semble pas suffisant pour simuler le clic comme MouseClick
Modifié en dernier par jrmy56 le sam. 13 déc. 2014 15:09, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Position élément dans page web IE

#5

Message par Tlem »

Merci de ré-éditer votre message afin de le faire correspondre aux règles de présentation d'un message.

Et merci aux autres utilisateurs de ne répondre que lorsque cela sera fait.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
A2Energie
Niveau 5
Niveau 5
Messages : 146
Enregistré le : ven. 15 nov. 2013 20:22
Status : Hors ligne

Re: [..] Position élément dans page web IE

#6

Message par A2Energie »

Bonjour,

As tu essayé de faire un "focus" puis simplement un send("{SPACE}") ou faire un send("{ENTER}")
Pourrais tu également nous donner la valeur (l'inspection) du bouton en question
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

Re: [..] Position élément dans page web IE

#7

Message par jrmy56 »

As tu essayé de faire un "focus" puis simplement un send("{SPACE}") ou faire un send("{ENTER}")
Oui, je viens d'essayer quelques combinatoires :

Code : Tout sélectionner

_IEAction($oInputFile, "focus")
Send("{SPACE}") ; Aucune réaction visible

Code : Tout sélectionner

_IEAction($oInputFile, "focus")
Send("{SPACE}")
_IEAction($oInputFile, "click") ; Même problème, ne simule pas correctement le clic

Code : Tout sélectionner

_IEAction($oInputFile, "focus")
Send("{ENTER}") ; Valide le formulaire et charge la page suivante !
Pourrais tu également nous donner la valeur (l'inspection) du bouton en question
C'est un élément HTML, <input type="file" name="inputFile" />, dans un formulaire <form name="form"></form>
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Position élément dans page web IE

#8

Message par mikell »

Tu donnerais pas le lien vers cette page histoire de pouvoir tester ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

Re: [..] Position élément dans page web IE

#9

Message par jrmy56 »

J'explore une autre piste que MouseClick, c'est ControlClick :

Code : Tout sélectionner

ControlClick("Page web IE", "", "", "left", 1, 350, 250)
Avantage de ControlClick, pas d'interférence lorsque l'on bouge la souris en même temps.

Maintenant, il y a toujours le problème pour récupérer la véritable position de l'élément sur la page web, en tenant compte de la position des barres de défilement horizontale et verticale.

J'aimerai ne pas devoir faire des calculs hasardeux pour trouver la position de l'élément (notamment avec : le zoom de la page, la résolution de l'écran, la position des barres de défilement, etc.).

Dans la documentation de https://www.autoitscript.com/autoit3/do ... lClick.htm, il y a le paramètre controlID à exploiter, mais je ne sais pas encore comment.
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

Re: [..] Position élément dans page web IE

#10

Message par jrmy56 »

mikell a écrit :Tu donnerais pas le lien vers cette page histoire de pouvoir tester ?
C'est le site https://imageshack.com/discover.

Il faut créer un compte et cliquer sur le bouton UPLOAD et l'input est sur le bouton BROWSE & UPLOAD
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Position élément dans page web IE

#11

Message par orax »

J'ai essayé avec IE11.

Code : Tout sélectionner

#include <IE.au3>
$oIE = _IECreate("https://imageshack.com/discover", 1)
_IENavigate($oIE, "javascript[b]:[/b]document.getElementsByClassName('upload-button').item(0).click(); document.getElementsByClassName('file').item(0).click()", 0)
WinWait("Choisir un fichier à télécharger")
$hChoose = WinGetHandle("Choisir un fichier à télécharger")
ControlSetText($hChoose, "", "Edit1", '"C:\Users\Public\Pictures\Sample Pictures\Koala.jpg"')
ControlClick($hChoose, "", "Button1", "primary")
Identifiants pour tester :

Code : Tout sélectionner

uiruinriunuirnr
uiruinriunuirnruiruinriunuirnr
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
jrmy56
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 13 déc. 2014 12:40
Status : Hors ligne

Re: [Résolu] Position élément dans page web IE

#12

Message par jrmy56 »

La fenêtre de sélection de fichier s'ouvre, le chemin vers le fichier est renseigné et la fenêtre se ferme.
Mais rien ne se passe !

Bizarre, je suppose qu'il y a des différences entre la version 11 et 9 d'Internet Explorer.

Je pense que la véritable solution est de passer sur une version plus récente d'Internet Explorer

Merci beaucoup pour l'aide.
Répondre