[R] OnMouseUp dans un span

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
fouille
Niveau 2
Niveau 2
Messages : 16
Enregistré le : dim. 22 mai 2011 23:27
Status : Hors ligne

[R] OnMouseUp dans un span

#1

Message par fouille »

Bonjour à tous,

J'ai un petit soucis avec mon script AutoIt que je voudrais utiliser pour poster de manière automatisée des photos sur un blog.
Voilà l'interface (Blogger/ Blog de google si je ne m'abuse!)

Image

Le problème donc, je n'arrive pas à clicker sur le "bouton" pour ajouter une image (entouré en rouge sur l'image)!

J'ai fait afficher le code source de la page et voilà une partie de ce qui s'affiche (ce qui me semble correspondre à la partie m'intéressant...)
► Afficher le texte
Et ensuite, j'ai sélectionné la partie qui m'intéressait et à nouveau affiché le code source...
► Afficher le texte
Alors, j'ai bien essayé d'utiliser _IEAction pour activer la fonction javascript addImage() mais sans succès et je me demande si ça ne vient pas du fait que le onmouseup soit dans une balise <span> et non dans une balise <a>...

Bref si vous avez une suggestion, je suis preneur! :D

Merci d'avance
Modifié en dernier par fouille le mar. 07 juin 2011 00:33, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] onmouseup dans un span

#2

Message par mikell »

Essaye

Code : Tout sélectionner

_IEImgClick ($oIE, "Ajouter une image", "alt")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] onmouseup dans un span

#3

Message par legend »

pourquoi ne pas poster ton message en modifiant le code html de la page?
fouille
Niveau 2
Niveau 2
Messages : 16
Enregistré le : dim. 22 mai 2011 23:27
Status : Hors ligne

Re: [..] onmouseup dans un span

#4

Message par fouille »

mikell a écrit :Essaye

Code : Tout sélectionner

_IEImgClick ($oIE, "Ajouter une image", "alt")
Arf, dommage en voyant cette fonction j'y ai cru...
Mais ça me retourne l'erreur 3 :($_IEStatus_InvalidDataType) = Invalid Data Type
Il me faut trouver autre chose :s

Merci quand même!
fouille
Niveau 2
Niveau 2
Messages : 16
Enregistré le : dim. 22 mai 2011 23:27
Status : Hors ligne

Re: [..] onmouseup dans un span

#5

Message par fouille »

legend a écrit :pourquoi ne pas poster ton message en modifiant le code html de la page?
Le problème c'est que quand on ajoute une image on l'envoie au serveur... Donc le code html ressemble à quelque chose comme:

Code : Tout sélectionner

<a href="http://2.bp.blogspot.com/-IHO2KXale0k/Teu4FOPcNeI/AAAAAAAAAC4/1Yftwi1saWQ/s1600/7_juin_2009%2B001.jpg"><img id="BLOGGER_PHOTO_ID_5614783760309171682" style="WIDTH: 240px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/-IHO2KXale0k/Teu4FOPcNeI/AAAAAAAAAC4/1Yftwi1saWQ/s320/7_juin_2009%2B001.jpg" border="0" /></a>
Je ne pense pas qu'il soit possible d'envoyer comme ça une image se trouvant sur mon disque dur... Je pourrai peut-être si l'image était déjà sur un serveur (mais je ne veux pas, car cet outil est déstiné à ma femme pour qu'elle puisse simplement et rapidement mettre des photos sur un blogg!) et encore je ne suis pas sûr à cause de l'id de limage...

Merci quand même!
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] onmouseup dans un span

#6

Message par overflow »

tu cale ta fenêtre toujours a la même position et taille et tu fais un mousclic a la position du bouton
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] OnMouseUp dans un span

#7

Message par mikell »

De l'include IE.au3 :

Code : Tout sélectionner

Func _IEImgClick([color=#FF0000]ByRef $o_object[/color], $s_linkText, $s_mode = "src", $i_index = 0, $f_wait = 1)
    [color=#FF0000]If Not IsObj($o_object)[/color] Then
        __IEErrorNotify("Error", "_IEImgClick", "[color=#FF0000]$_IEStatus_InvalidDataType[/color]")
        Return SetError($_IEStatus_InvalidDataType, 1, 0)
 
t'as vérifié le $oIE ?


Autre solution :

Code : Tout sélectionner

$oImg = _IEImgGetCollection ($oIE) ; (à gérer) ou alors :
$oImg = _IETagnameGetCollection ($oIE, "img", [color=#FF0000]n[/color] ) ; <== où ton image est la n-ième <img ...> sur la page 
_IEAction ($oImg, "click" )
Ou sinon, si le _IEImgClick() nefait pas passer le onmouseup, reste ça :

Code : Tout sélectionner

;[color=#0040FF]http://www.autoitscript.com/forum/topic/117510-ieaction-click-doesnt-fire-off-javascript-mousedown/page__view__findpost__p__818734[/color]

$oImg = _IETagnameGetCollection ($oIE, "img", [color=#FF0000]n[/color] ) ; <== ton image est la n-ième <img ...> sur la page 
_IEMyFullClick($oImg)

Func _IEMyFullClick($oElement)
    ;Function to perform full click
    $oElement.fireEvent("onmousedown")
    $oElement.fireEvent("onmouseup")
    _IEAction($oElement, "click")
EndFunc
Gnahhh... :twisted:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
fouille
Niveau 2
Niveau 2
Messages : 16
Enregistré le : dim. 22 mai 2011 23:27
Status : Hors ligne

Re: [..] OnMouseUp dans un span

#8

Message par fouille »

Déjà merci et chapeau pour toutes ces solutions ^^
mikell a écrit :De l'include IE.au3 :

Code : Tout sélectionner

Func _IEImgClick([color=#FF0000]ByRef $o_object[/color], $s_linkText, $s_mode = "src", $i_index = 0, $f_wait = 1)
    [color=#FF0000]If Not IsObj($o_object)[/color] Then
        __IEErrorNotify("Error", "_IEImgClick", "[color=#FF0000]$_IEStatus_InvalidDataType[/color]")
        Return SetError($_IEStatus_InvalidDataType, 1, 0)
 
t'as vérifié le $oIE ?
En effet mon $oIE était moisi (je faisais $oIE = _IENavigate($oIE, "http://www.blogger.com/post-create.g?bl ... 3194408117"))... Mais après avoir viré le "$oIE = " pas d'amélioration!
mikell a écrit : Autre solution :

Code : Tout sélectionner

$oImg = _IEImgGetCollection ($oIE) ; (à gérer) ou alors :
$oImg = _IETagnameGetCollection ($oIE, "img", [color=#FF0000]n[/color] ) ; <== où ton image est la n-ième <img ...> sur la page 
_IEAction ($oImg, "click" )
Ca, pas mieux... :s

mikell a écrit : Ou sinon, si le _IEImgClick() nefait pas passer le onmouseup, reste ça :

Code : Tout sélectionner

;[color=#0040FF]http://www.autoitscript.com/forum/topic/117510-ieaction-click-doesnt-fire-off-javascript-mousedown/page__view__findpost__p__818734[/color]

$oImg = _IETagnameGetCollection ($oIE, "img", [color=#FF0000]n[/color] ) ; <== ton image est la n-ième <img ...> sur la page 
_IEMyFullClick($oImg)

Func _IEMyFullClick($oElement)
    ;Function to perform full click
    $oElement.fireEvent("onmousedown")
    $oElement.fireEvent("onmouseup")
    _IEAction($oElement, "click")
EndFunc
Gnahhh... :twisted:
Ca par contre ça paraît intéressant.
En effet avec cette technique, j'arrive à appuyer sur les boutons, mais pour le bouton qui m'intéresse, il y a un problème. L'action doit ouvrir une nouvelle fenêtre (http://www.blogger.com/upload-image.g?blogID=xxxxx) qui semble bloquée :"Fenêtre pop-up bloquée par la barre d'outils Google". J'ai bien sûr désactivé le bloqueur de fenêtres mais sans changement. En plus quand je click "à la mano" sur l'image je n'ai pas de soucis... Bizarre (et très chiant ^^)

En tout cas, merci encore pour ton aide!
fouille
Niveau 2
Niveau 2
Messages : 16
Enregistré le : dim. 22 mai 2011 23:27
Status : Hors ligne

Re: [..] onmouseup dans un span

#9

Message par fouille »

overflow a écrit :tu cale ta fenêtre toujours a la même position et taille et tu fais un mousclic a la position du bouton
Ouep pour l'instant je me rabat sur cette solution (merci à toi) mais c'est pas tip-top donc si je peux avoir une autre solution "plus propre", ce serait bien!
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] OnMouseUp dans un span

#10

Message par mikell »

fouille a écrit :. En plus quand je click "à la mano" sur l'image je n'ai pas de soucis...
Essaye de rajouter au début de la fonction

Code : Tout sélectionner

$oElement.fireEvent("onmouseover")
Il lui faut peut-être un Hover pour accepter le click
Si la fenêtre s'ouvre, c'est que ça marche.... si elle est bloquée par la barre d'outils Google, ça vient du navigateur (Chrome ?) ou d'une Google Toolbar dans IE (les fonctions _IE appellent Internet Explorer... mauvais plan, les toolbars) :?
voire des paramètres de sécurité dans IE

Si rien ne marche et que tu gardes la méthode d'overflow alors je te conseille de "coincer" ta fenêtre web dans une GUI, comme ça elle ne pourra pas être redimensionnée ou déplacée par accident ce qui changerait les coordonnées du MouseClick

ça te dirait pas de poster ton code et l'adresse de la page histoire de vérifier qu'y a plus rien à faire ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] OnMouseUp dans un span

#11

Message par legend »

Pour le mouseclick, c'est déconseillé et dans le cas ou tu vas l'utiliser utilise controlclick qui ne varie pas avec la position ou les démontions de la fenêtre.
Je propose une solution :
Uploader les images en utilisant les fonctions FTP d'autoIt et modifier le code Html (t'a le choix entre plusieurs hébergeurs ^^)
bonne journée.
fouille
Niveau 2
Niveau 2
Messages : 16
Enregistré le : dim. 22 mai 2011 23:27
Status : Hors ligne

Re: [R] OnMouseUp dans un span

#12

Message par fouille »

mikell a écrit :
fouille a écrit :. En plus quand je click "à la mano" sur l'image je n'ai pas de soucis...
Essaye de rajouter au début de la fonction

Code : Tout sélectionner

$oElement.fireEvent("onmouseover")
Il lui faut peut-être un Hover pour accepter le click
Si la fenêtre s'ouvre, c'est que ça marche.... si elle est bloquée par la barre d'outils Google, ça vient du navigateur (Chrome ?) ou d'une Google Toolbar dans IE (les fonctions _IE appellent Internet Explorer... mauvais plan, les toolbars) :?
voire des paramètres de sécurité dans IE

Si rien ne marche et que tu gardes la méthode d'overflow alors je te conseille de "coincer" ta fenêtre web dans une GUI, comme ça elle ne pourra pas être redimensionnée ou déplacée par accident ce qui changerait les coordonnées du MouseClick

ça te dirait pas de poster ton code et l'adresse de la page histoire de vérifier qu'y a plus rien à faire ?
Bon voilà en désinstallant cette foutue barre d'outils google, plus de soucis, la technique avec la fonction réécrite _IEMyFullClick marche nickel! Merci à tous...
J'ai bien avancé dans mon script, mais si je rencontre d'autres points bloquants je ferai à nouveau appel à vos services dans un autre sujet ^^

Merci encore
Répondre