[R] Cliquer sur un endroit précis
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.
[R] Cliquer sur un endroit précis
Mesdames, Messieurs,
Je vous écrit aujourd'hui car j'ai un énorme soucis. Je n'arrive pas à faire mes clics là où je le veux. Je m'explique donc :
MouseClick ("Left", coordonnées x, coordonnées y)
Mais ce n'est pas ça que je veux, car je suis en BTS de développement donc j'utilise plusieurs écrans et à chaque fois, la compatibilité n'est plus bonne du tout. Donc ce que je voudrais savoir, c'est comment est-ce qu'on peut lui dire : Sur cette page, si il y a ce texte, (ou ce lien...) clique dessus.
Ce, vous l'aurez compris, afin de maximiser carrément les compatibilités. Car ça fait des jours que je cherche sur internet mais rien pour me renseigner, je demande à d'autres personnes qui me parle de capture d'écran, je bidouille le code pour tester tout et rien...
Je vous remercie d'avance pour votre aide, j'espère avoir été assez clair dans ma demande, et si j'ai oublié quelque chose, n'hésitez pas à me le dire.
Je vous remercie beaucoup d'avance.
Cordialement.
Je vous écrit aujourd'hui car j'ai un énorme soucis. Je n'arrive pas à faire mes clics là où je le veux. Je m'explique donc :
MouseClick ("Left", coordonnées x, coordonnées y)
Mais ce n'est pas ça que je veux, car je suis en BTS de développement donc j'utilise plusieurs écrans et à chaque fois, la compatibilité n'est plus bonne du tout. Donc ce que je voudrais savoir, c'est comment est-ce qu'on peut lui dire : Sur cette page, si il y a ce texte, (ou ce lien...) clique dessus.
Ce, vous l'aurez compris, afin de maximiser carrément les compatibilités. Car ça fait des jours que je cherche sur internet mais rien pour me renseigner, je demande à d'autres personnes qui me parle de capture d'écran, je bidouille le code pour tester tout et rien...
Je vous remercie d'avance pour votre aide, j'espère avoir été assez clair dans ma demande, et si j'ai oublié quelque chose, n'hésitez pas à me le dire.
Je vous remercie beaucoup d'avance.
Cordialement.
Modifié en dernier par Shenazen le ven. 20 oct. 2017 11:33, modifié 1 fois.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: Cliquer sur un endroit précis
Bienvenue sur le forum.
Il est généralement préférable d'utiliser
S'il s'agit de cliquer sur des liens dans une page web, il est possible d'automatiser le navigateur. Pour automatiser Internet Explorer, il existe l'UDF IE.au3 ; les fonctions commencent par _IE, comme
Il est généralement préférable d'utiliser
ControlClick
à la place de MouseClick
.S'il s'agit de cliquer sur des liens dans une page web, il est possible d'automatiser le navigateur. Pour automatiser Internet Explorer, il existe l'UDF IE.au3 ; les fonctions commencent par _IE, comme
_IECreate
, par exemple.De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: Cliquer sur un endroit précis
D'accord, je vais essayer cet UDF dès mon retour au bureau et je vous dirai ça. Mais si c'est pour un fichier Excel ou PowerPoint ? Je peux faire comment ? Et c'est quoi cette histoire d'utiliser un ScreenShot ?
- TomAijerrie
- Niveau 5
- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
Re: Cliquer sur un endroit précis
C'est toi qui nous as parlé d'utiliser une capture d'écran. Nous n’avons pas vu les messages des personnes qui te demandent de faire ça, donc on ne peut pas t'aider. Peut être qu'ils t'ont demandé de leur envoyer un screen de tes écrans pour qu'ils puissent vérifier que tu n'as pas utilisé de mauvaise coordonnées.
Pour les fichiers Excel, il existe un UDF présent par défaut dans AutoIt https://www.autoitscript.com/wiki/Excel_UDF
Pour les fichiers Excel, il existe un UDF présent par défaut dans AutoIt https://www.autoitscript.com/wiki/Excel_UDF
Re: Cliquer sur un endroit précis
Certes, je vous en ai parlé car quand j'ai demandé à mon patron et un de mes professeurs (Car je suis en alternance), ils m'ont tous les deux parler que ça fonctionnait par ScreenShot (Je crois que c'est le terme même qu'ils ont employé). Sachant que ces deux personnes étaient avec moi physiquement, il est donc normal que vous n'ayez pas vu leur post Et également, je leur ai montré donc ils m'ont pas dit de leur envoyer de capture.
Pour l'UDF IE, je suis encore en train de chercher car je n'arrive pas à le faire fonctionner correctement... Et merci pour la réponse pour Excel, ce lien je l'ai déjà consulté et ne m'a pas été d'une très grande aide, mais je vous remercie pour vos réponses. En espérant avoir d'autres réponses d'aide, cela m'apporterait énormément
Voilà par exemple le code que j'ai fait pour vous montrer un de mes soucis, il ne veut pas aller cliquer sur le lien que je lui ai demandé :
Je vous remercie par avance
Pour l'UDF IE, je suis encore en train de chercher car je n'arrive pas à le faire fonctionner correctement... Et merci pour la réponse pour Excel, ce lien je l'ai déjà consulté et ne m'a pas été d'une très grande aide, mais je vous remercie pour vos réponses. En espérant avoir d'autres réponses d'aide, cela m'apporterait énormément
Voilà par exemple le code que j'ai fait pour vous montrer un de mes soucis, il ne veut pas aller cliquer sur le lien que je lui ai demandé :
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IECreate("http://google.fr")
WinActivate("Google")
Sleep(3000)
Send("Chat")
Send("{ENTER}")
Sleep(2000)
Local $oSubmit = _IEGetObjByName($oIE, "Images")
_IEAction($oSubmit, "click")
_IELoadWait($oIE)
Modifié en dernier par orax le jeu. 19 oct. 2017 14:35, modifié 2 fois.
Raison : Remplacement de l'image par du texte (code).
Raison : Remplacement de l'image par du texte (code).
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: Cliquer sur un endroit précis
Pour arriver à mieux comprendre et pour trouver une solution adaptée, peut-on savoir quel est le but du script ? Automatiser des tâches ? Tester si une application est bien fonctionnelle ? Autre chose ?
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: Cliquer sur un endroit précis
Pardon, entre-temps j'ai édité mon message au dessus.
Je cherche à cliquer sur le lien avec une demande autre que ControlClick ou MouseClick.
J'essai d'être le plus clair possible car je ne peux pas dire exactement le comment du pourquoi car c'est pour l'entreprise qui m'a demandé cette tâche et je ne peux rien dévoiler. Mais en gros c'est ça Voir même, je cherche à faire en sorte, que sur une page, il y a tel texte ou telle image, et je veux aller cliquer dessus par ce biais. Je vais essayer de trouver un exemple et je vous l'envoi
Je cherche à cliquer sur le lien avec une demande autre que ControlClick ou MouseClick.
J'essai d'être le plus clair possible car je ne peux pas dire exactement le comment du pourquoi car c'est pour l'entreprise qui m'a demandé cette tâche et je ne peux rien dévoiler. Mais en gros c'est ça Voir même, je cherche à faire en sorte, que sur une page, il y a tel texte ou telle image, et je veux aller cliquer dessus par ce biais. Je vais essayer de trouver un exemple et je vous l'envoi
Modifié en dernier par orax le jeu. 19 oct. 2017 14:37, modifié 1 fois.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: Cliquer sur un endroit précis
J'ai supprimé l'image qui montre le code. On peut ajouter du code directement dans le message. Comme ça :
Code : Tout sélectionner
#include <IE.au3>
$oIE = _IECreate("http://google.fr")
_IELinkClickByText ($oIE, "Images")
_IELoadWait($oIE)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: Cliquer sur un endroit précis
Ah ouais, c'est carrément mieux pour afficher le code!
Par contre, le code que tu m'as donné, fonctionne très bien sur google mais... Pas sur le site. J'ai juste remplacé l'acé l'adresse "Google.fr" par le site, puis le mot "Images" par le mot "Demandes" que j'ai sur le site sur lequel je veux appuyer. Mais là, ça ne fonctionne plus...
Il m'affiche ceci :
Par contre, le code que tu m'as donné, fonctionne très bien sur google mais... Pas sur le site. J'ai juste remplacé l'acé l'adresse "Google.fr" par le site, puis le mot "Images" par le mot "Demandes" que j'ai sur le site sur lequel je veux appuyer. Mais là, ça ne fonctionne plus...
Il m'affiche ceci :
Re: Cliquer sur un endroit précis
Voici en faites sur quoi je travaille :
Je veux faire cliquer sur le lien "demandes" en haut. Et à chaque fois, je change d'écran, donc je ne peux pas me permettre de le faire avec des coordonnées...
Je veux faire cliquer sur le lien "demandes" en haut. Et à chaque fois, je change d'écran, donc je ne peux pas me permettre de le faire avec des coordonnées...
Re: Cliquer sur un endroit précis
Bien le bonjour,
Grâce à des recherches bien compliquées, et le fait que ça fait un mois que je cherche, je suis venu sur ce forum hier pour poser mon problème. N'ayant eu aucune réponse pouvant régler mon problème parfaitement, je ne sais pas comment, mais j'ai réussi à faire ce que je voulais enfin.
Je vais mettre le petit [R] sur le titre pour résolu, mais avant, voici la solution :
L'histoire de la capture d'écran est en faites réellement ce qu'il fallait.
Vous faites une capture d'écran de la zone que vous souhaitez cibler. Vous l'enregistrez au format .bmp en 24bits. Ensuite, il vous faut un fichier _imagesearch.zip que vous trouverez ICI.
Vous suivez donc les indications de ce lien que je vous ai donné. Par la suite, il ne vous reste plus qu'à désigné votre image en .bmp et pour cliquer dessus par exemple, vous faites :
Ou comme moi vous pouvez déplacer un peu la souris sur l'image pour être sûr que ça clique bien dessus :
.
Voilà, et pour finir, pensez surtout, quand vous aurez télécharger le fichier, à ouvrir le script ImageSearch.zip et à mettre un espace avant chaque "byref" sinon ça ne fonctionnera pas.
Voici donc au final, la partie de code que je cherchais désespérément :
Puis suite à ça, plus qu'à intégrer la fonction dans votre code source là où vous en avez besoin. Je tient à remercier les personnes qui ont tentés de m'aider, c'était super sympa, et je n'hésiterai pas à revenir régulièrement.
Merci à tous et bonne journée.
Grâce à des recherches bien compliquées, et le fait que ça fait un mois que je cherche, je suis venu sur ce forum hier pour poser mon problème. N'ayant eu aucune réponse pouvant régler mon problème parfaitement, je ne sais pas comment, mais j'ai réussi à faire ce que je voulais enfin.
Je vais mettre le petit [R] sur le titre pour résolu, mais avant, voici la solution :
L'histoire de la capture d'écran est en faites réellement ce qu'il fallait.
Vous faites une capture d'écran de la zone que vous souhaitez cibler. Vous l'enregistrez au format .bmp en 24bits. Ensuite, il vous faut un fichier _imagesearch.zip que vous trouverez ICI.
Vous suivez donc les indications de ce lien que je vous ai donné. Par la suite, il ne vous reste plus qu'à désigné votre image en .bmp et pour cliquer dessus par exemple, vous faites :
Code : Tout sélectionner
MouseClick (ou ControlClick) ("Bouton", $x1, $y1, 1, 10)
Code : Tout sélectionner
MouseClick ("Left", $x1 + 10 , $y1 + 10, 1, 10)
Voilà, et pour finir, pensez surtout, quand vous aurez télécharger le fichier, à ouvrir le script ImageSearch.zip et à mettre un espace avant chaque "byref" sinon ça ne fonctionnera pas.
Voici donc au final, la partie de code que je cherchais désespérément :
Code : Tout sélectionner
Func _imgdemandes()
$x1=0
$y1=0
$demandes = "C:\Users\I15276\Desktop\Test\Projet Robot\Images\Demandes.bmp"
$result = _ImageSearch($demandes,0,$x1,$y1,0)
If $result=1 Then
MouseMove ($x1 + 10, $y1 + 10, 10)
MouseClick ("Left", $x1 + 10 , $y1 + 10, 1, 10)
EndIf
EndFunc
Merci à tous et bonne journée.
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [R] Cliquer sur un endroit précis
Merci de partager la solution.
Je pense qu'il aurait quand même été possible de faire autrement, mais si ça marche comme ça, tant mieux ! Je préfère utiliser ce type de solution qu'en dernier recours. Il y a un logiciel, Sikuli, qui permet de faire quelque chose de semblable. Je ne l'utilise pas, je ne le connais que de nom. https://alternativeto.net/software/sikuli/
Je pense qu'il aurait quand même été possible de faire autrement, mais si ça marche comme ça, tant mieux ! Je préfère utiliser ce type de solution qu'en dernier recours. Il y a un logiciel, Sikuli, qui permet de faire quelque chose de semblable. Je ne l'utilise pas, je ne le connais que de nom. https://alternativeto.net/software/sikuli/
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)