# validation d'un message "d'erreur" sous safari



## johny12 (20 Mars 2008)

j'ai deja trouvé le script suivant me permetant de reactualiser la page
on run
activate application "Safari"
tell application "System Events"​tell application process "Safari"​repeat​keystroke "r" using command down​delay 300​end repeat​end tell​end tell​end run

mais il reste un problème, c'est un formulaire. Comment puis-je donc valider ce message: vous allez reanvoyer des donnés ... etc ?
(le début du message est :voulez-vous vraiment soumettre à nouveau le formulaire ? ..."

/je tient a préciser que ceci n'est pas pour " triché sr 1 sit" comme déjà demandé mais pour effectuer une commande que je doit faire tout les 2 jours/

 merci de votre réponse


Déjà, pour avoir une réponse, faut poser la question ... Au bon endroit. On y va. En plus, pour indenter, faut utiliser la balise indent, parce que les espaces en début de ligne ne sont pas pris en compte  !


----------



## ceslinstinct (21 Mars 2008)

johny12 a dit:


> j'ai deja trouvé le script suivant me permetant de reactualiser la page
> on run
> activate application "Safari"
> tell application "System Events"​tell application process "Safari"​repeat​keystroke "r" using command down​delay 300​end repeat​end tell​end tell​end run
> ...


Bonjour

Si je comprend bien c'est la fenêtre qui s'ouvre en haut de la page web.

Quel système tu utilise?

Avec Leopard c'est possible de faire un clic sur un bouton (Tiger jamais testé) avec:

```
tell application "Extra Suites"
```

@+


----------



## johny12 (21 Mars 2008)

je suis désolé mais je ne sais absolument pas sur quel systeme je suis ... 

Mais lorsque j'entre :" tell application "Extra Suites" il me demande bien evidemment ou il se trouve, et je ne le trouve pas. Pouriez vous me dire ou il est placé ou bien si il n'existe pas sous ce systeme ?

je pense avoir à peu près trouvé :

tell application "System Events"
    tell process "Firefox"
        try
            tell front window
                click at {x, y}
            end tell
        end try
    end tell
end tell

mais malheureusement, ca ne marche pas ...

(j'ai bien sur remplacé X et Y par les points corespondants)


----------



## ceslinstinct (21 Mars 2008)

johny12 a dit:


> je suis désolé mais je ne sais absolument pas sur quel systeme je suis ...
> 
> Mais lorsque j'entre :" tell application "Extra Suites" il me demande bien evidemment ou il se trouve, et je ne le trouve pas. Pouriez vous me dire ou il est placé ou bien si il n'existe pas sous ce systeme ?



Pour les renseignements sur le Mac: Dans la fenêtre du Finder, Menu Pomme/A propos de ce Mac.

L'OSAX *Extra Suites*: http://www.kanzu.com/

A placer dans Utilisateurs/Petite maison/Bibliothèque/ScriptingAdditions

Si ce dossier n'existe pas, le créer, mais aucune faute dans le nom pour que le dossier soit reconnu.


```
activate application "Safari"
tell application "System Events" to tell window 1 of process "Safari"
	set {g, h} to position -- Postion de la fenêtre sur l'écran
end tell
-- Faire le test du script non compilé qu'avec les lignes ci-dessus pour avoir les valeurs de g & h

tell application "Extra Suites"
	ES move mouse {g + 14, h + 10} -- Position du centre de la pustule rouge pour quitter la fenêtre de Safari
	ES click mouse
end tell

-- g + 14 = centre de la pustule rouge par apport au bord gauche de la fenêtre de Safari
-- h + 10 = centre de la pustule rouge par apport au bord haut de la fenêtre de Safari

-- Pour le centre du bouton j'utilise Pixie Developer/Applications/Graphics Tools/Pixie (des freewares existent)
-- Du résultat de Pixie on soustraie les valeurs de g & h  que l'on ajoute a g & h pour avoir la postion du bouton à cliquer sur la fenêtre.

-- Ceci est valable pour des boutons qui ont une position définitives sur la fenêtre.
-- Pour une fenêtre qui s'ouvre sur la fenêtre de Safari il doit falloir jouer sans doute avec le nom de la fenêtre (j'ai pas testé).

-- Ce code c'est juste pour te donner une idée.
```

@+


----------



## johny12 (21 Mars 2008)

Merci pour votre réponse

Je suis donc sur un Mac OS X version 10.4.11

J'ai télécharger:"Extra Suites. L'ai placé dans Utilisateurs/Petite maison/Bibliothèque/ScriptingAdditions ( après avoir créé le dossiers ScriptingAdditions)

Puis commencé à compiler le script, et la ... "Ou se trouve extra suites ?" me demande-il, je refais le chemin: utilisateurs petite maison bibliotheque scripting additions et je ne peux malheureusement pas le selectionner, pourquoi ?

Lorsque je lance le début du script :"
activate application "Safari"
tell application "System Events" to tell window 1 of process "Safari"
	set {43, 58} to position -- Postion de la fenêtre sur l'écran
end tell

il s'affiche :" Erreur d'applescript: Erreur dans systeme event
NSReceiverEvaluationScriptError: 4
ai-je fais une mauvaise manipulation ?
merci de votre réponse


----------



## ceslinstinct (22 Mars 2008)

johny12 a dit:


> Merci pour votre réponse
> set {43, 58} to position -- Postion de la fenêtre sur l'écran


Bonjour

Cette ligne n'exécute pas un ordre elle reçoit les nombres de la partie gauche et haute de la fenêtre.
Ce sont obligatoirement des variables.
Si tu déplace la fenêtre, a la prochaine ouverture de Safari les 2 variables auront changées, mais pas la position du clic qui est géré justement par ces 2 variables.

La première partie du script doit pas être modifié,.

Si tu veut placer la fenêtre toujours au même endroit la commande est pas celle-ci mais l'inverse.

@+


----------



## johny12 (22 Mars 2008)

ok, merci. je crois avoir compris.

Par contre, sur la ligne :" ES move mouse {g + 14, h + 10}

il s'affiche ( à la compilation) :" Syntax error
"given","with","without",nom d'autres paramètres,etc.prévu mais identificateur trouvé / et le mot "mouse" est selectionné.
que dois-je faire ?

lors de ce script :"


johny12 a dit:


> on run
> activate application "Safari"
> tell application "System Events"​tell application process "Safari"​repeat​keystroke "r" using command down​delay 300​end repeat​end tell​end tell​end run
> 
> ...


----------



## ceslinstinct (22 Mars 2008)

johny12 a dit:


> ok, merci. je crois avoir compris.
> 
> Par contre, sur la ligne :" ES move mouse {g + 14, h + 10}


Si mouse est surligné en bleu, il y a de forte chance que l'OSAX Extra Suites ne soit pas trouvé.
Le dossier ScriptingAdditions que tu as créé n'est pas trouvé, recréer le sans faute.

Tu peut en créer un dans le dossier bibliothèque a la racine du DD il seras pour toutes les sessions, le premier créé et que pour une session (moi j'ai les 2)

@+


----------



## johny12 (22 Mars 2008)

c'est affiché ca :





peux-tu s'il te plait me réindiquer la marche à suivre dans ce cas ?

merci de ta réponse


----------



## ceslinstinct (22 Mars 2008)

johny12 a dit:


> peux-tu s'il te plait me réindiquer la marche à suivre dans ce cas ?
> 
> merci de ta réponse


Erreur de ma part.

Il utilise une icône de *complément de pilotage* et c'est une application, c'est ce qui ma trompé (ce n'est pas un OSAX).

Place le avec les applications et fait un test.

PS: La ligne après *ES click mouse* ajoute *Quit* car c'est une application qui travaille en tâche de fond alors pas d'icône visible et c'est pas la peine de garder une application ouverte inutilement.

@+


----------



## johny12 (22 Mars 2008)

le script serait donc :"
activate application "Safari"
tell application "System Events" to tell window 1 of process "Safari"
	set {g, h} to position -- Postion de la fenêtre sur l'écran
end tell


tell application "Extra Suites"
	ES move mouse {g + 14, h + 10} -- Position du centre de la pustule rouge pour quitter la fenêtre de Safari
	ES click mouse // c'est la que je doit placer "quit" ou une ligne plus bas ?

end tell

-- g + 14 = centre de la pustule rouge par apport au bord gauche de la fenêtre de Safari
-- h + 10 = centre de la pustule rouge par apport au bord haut de la fenêtre de Safari



mais il me reafiche qu'il ne connais pas "mouse" n'y aurait-il pas une autre appelation ?


----------



## ceslinstinct (22 Mars 2008)

johny12 a dit:


> le script serait donc :"




```
activate application "Safari"
tell application "System Events" to tell window 1 of process "Safari"
	set {g, h} to position -- Position du coin haut gauche de la fenêtre sur l'écran
end tell

tell application "Extra Suites"
	ES move mouse {g + 14, h + 10} -- Sélectionne la position du bouton à cliquer
	ES click mouse -- Clic sur le bouton
	quit
end tell
```

Pour garder le formatage *code* (entre crochets) l'applescript *slash* & *code* (entre crochets).
Le script se trouve alors comme ci-dessus.

@+


----------



## johny12 (22 Mars 2008)

merci beaucoup, il me paraît juste mais il y a encore un léger problème. Mous n'existe pas dans son lexique visiblement, n'y aurait-il pas un autre mot identique mais compréhensible par ses petits circuits ?


----------



## ceslinstinct (22 Mars 2008)

johny12 a dit:


> merci beaucoup, il me paraît juste mais il y a encore un léger problème. Mous n'existe pas dans son lexique visiblement, n'y aurait-il pas un autre mot identique mais compréhensible par ses petits circuits ?


La je ne comprend rien à ta réponse.

Pour comprendre ce que tu cherche, dit nous sur quel Mac (si c'est un mac), et quel système tu utilise?

Le code donné est pour Tiger et Leopard.

Tu donne aucun détails, ta réponse démerdez vous je veut une réponse exact c'est mon droit puisque je pose la question.

On est la pour t'aider, alors aide nous toi aussi pour trouver la réponse que tu cherche.

Le script envoyé marche parfaitement chez moi avec Léopard (le mien doit être exceptionnel ou alors c'est mon ordinateur qui corrige mes erreurs).

La je pense trouver aucunes solutions pour ton problème, fait comme si mes posts c'était un *Bug* avec window.

Je suis dégoûté de répondre.


----------



## johny12 (23 Mars 2008)

Désolé, mon but n'était pas de vous vexer. Je voulais placer juste un semblant de blague, qui visiblement n'a pas l'air d'avoir bien passé. Désolé.

C'est vrai qu'en relisant mes message, je n'ai pas été d'une extreme sympathie envers une personne qui ne m'a rien demandée et qui en plus de me donner des conseils me donne de son temps libre. Pour ça, je vous remerci grandement.

Pour le mac sur lequel je suis:"a propos de ce mac " montre ceci





Je ne trouve malheureusement pas ou mon système il est indiqué.

Je vous met donc toutes les infos que j'ai récupéré:

Version du système :	Mac OS X 10.4.11 (8S2167)
  Version du noyau :	Darwin 8.11.1
  Volume de démarrage :	Macintosh HD
  Nom de l&#8217;ordinateur :	Ordinateur de nicolas muller
  Nom de l&#8217;utilisateur :	Jonathan Muller (jonathan)

Informations matériel :

  Nom du modèle :	MacBook
  Identifiant du modèle :	MacBook2,1
  Nom du processeur :	Intel Core 2 Duo
  Vitesse du processeur :	2 GHz
  Nombre de processeurs :	1
  Nombre total de c&#339;urs :	2
  Cache de niveau 2 (par processeur) :	4 Mo
  Mémoire :	1 Go
  Vitesse du bus :	667 MHz
  Version de la ROM de démarrage :	MB21.00A5.B07
  Version SMC :	1.17f0
  Numéro de série :	W87357HPZ5V
  Capteur de mouvement brusque :
  État :	Activé

L'info recherchée est-elle dedans ?


----------



## ceslinstinct (23 Mars 2008)

johny12 a dit:


> Désolé, mon but n'était pas de vous vexer.


Bonjour

Dans mes posts il y a une signature en bas et bien fait la même chose, comme ça cela permet de te répondre plus facilement.

Pour toi:

MacBook Intel Core 2 Duo 2 GHz
Système 10.4.11 (que tu mettras à jour quand tu passeras sous Leopard).

Cela suffit.

Quand à mous???

Le script doit te fermer la page de Safari tel qu'il est écrit (i faut qu'il y est au moins une fenêtre d'ouverte, car c'est un exemple donc pas de contrôle).
Si une erreur à la compilation c'est qu'il ne trouve pas l'application "Extra Suites" dans ton ordinateur.

Donc l'installer.


----------



## ceslinstinct (23 Mars 2008)

Dit moi si ta fenêtre d'alerte à toujours le même format suivant les dimensions de la fenêtre de Safari.

Pour avoir toujours le curseur centré sur le bouton.

Ou donne moi la solution pour avoir cette fenêtre, je l'ai rarement.

@+


----------



## johny12 (23 Mars 2008)

oui, elle est toujours centrée. La "solution" par exemple: aller sur un sit d'achat par corespondance, indiquer le nombre de produit à commander puis valider, et faire pomme r ou bien executer ce script:

activate application "Safari"
tell application "System Events"
tell application process "Safari"
repeat
keystroke "r" using command down
delay 300
end repeat
end tell
end tell
end run

d'ou m'est venu une idée, peu logique, certes, mais qui pourait éviter pas mal de problèmes.

La commande "keystroke "r" using command down" simuler "pomme r"
n'y aurait-il pas un moyen de simuler enter ?

( je suis en train de charger la video pour vous montrer ou est le problème)


----------



## ceslinstinct (23 Mars 2008)

johny12 a dit:


> oui, elle est toujours centrée. La "solution" par exemple: aller sur un sit d'achat par corespondance, indiquer le nombre de produit à commander puis valider, et faire pomme r ou bien executer ce script:
> 
> d'ou m'est venu une idée, peu logique, certes, mais qui pourait éviter pas mal de problèmes.
> 
> ...


Ce que je demande c'est si ta fenêtre Safari à le format d'un écran 9" ou en format 17" sur ton écran le nombre de pixels de la fenêtre d'alerte est le même.

Pour le code, si c'est le même c'est facile de trouver le centre du bouton à cliquer, sinon faut faire le calcul du centre du bouton pour pouvoir cliquer.

*Keystroke return* normalement c'est la touche Enter


----------



## johny12 (23 Mars 2008)

elle a toujours la même taille, heureusement

le script est super, mais j'ai du faire une erreur, j'ai téléchargé "extra suites" a l'adresse que tu m'a donné, l'ai placé dans le dossier "ScriptingAdditions" que j'avais crée auparavant. Mais ce fichu ordinateur, malgré toute ces très bonnes marche à suivres ne comprend pas "mouse", saleté d'ordi ^^. me suis-je trompé ou cela ne marche pas sur mon ordi dans tout les cas  ? ( je suis sur que je me suis trompé, mais je ne sais pas ou ...)


----------



## ceslinstinct (23 Mars 2008)

johny12 a dit:


> elle a toujours la même taille, heureusement
> 
> le script est super, mais j'ai du faire une erreur, j'ai téléchargé "extra suites" a l'adresse que tu m'a donné, l'ai placé dans le dossier "ScriptingAdditions" que j'avais crée auparavant. Mais ce fichu ordinateur, malgré toute ces très bonnes marche à suivres ne comprend pas "mouse", saleté d'ordi ^^. me suis-je trompé ou cela ne marche pas sur mon ordi dans tout les cas  ? ( je suis sur que je me suis trompé, mais je ne sais pas ou ...)



*Je t'ai indiqué que l'erreur c'etait de ma faute*.

Le créateur à donné une* icône d'OSAX*, est c'est une *application* (OSAX = complément de pilotage placé dans un dossier spécial pour être reconnue par les applications créé en AppleScript).

Donc tu déplace dans le dossier application et tu élimine le dossier que tu as créé.

Maintenant ça doit marcher.

Je vais modifier le code, pour qu'il prenne en compte le changement de dimension de la fenêtre de Safari pour qu'il retrouve toujours le bouton (la fenêtre est si facilement modifiable).

Si la fenêtre d'alerte change pas de format alors ce devrais être assez simple de retrouver le centre du bouton.

Entre le format 9" du premier Mac et celui de mon iMac 24" il y a un gros écart de position du bouton et je connaît pas le format de la fenêtre que tu utilise alors il vaut mieux que ce soit le script qui gère ça.

@+


----------



## johny12 (23 Mars 2008)

pour reprendre la chanson:
moi j'ai placé sous scriptingaddition, script pas marcher
alors moi placé sous application, script toujours pas marcher
alors moi commencé a enervé, script toujours pas marché
alors moi j'ai commencé taper, script toujours pas marcher ...

(chanson "j'ai des petits bloblèmes dans ma compilation/plantation )

lol



je ne suis pas sur mais est-ce que le problème est peut etre lié à que extra suite n'est pas "reconnu" par mon ordinateur, il est en ".sit" et pas en ".app" ( je ne suis aps très fort mais on ne sais jamais ^^)


----------



## ceslinstinct (23 Mars 2008)

johny12 a dit:


> il est en ".sit" et pas en ".app" ( je ne suis aps très fort mais on ne sais jamais ^^)


Un sit c'est un fichier compressé, donc ça peut pas marcher.

Il faut le décompresser, l'application est dans sons paquet cadeau a toi de l'ouvrir.
Tu fait un double clic sur le .sit (boite en bois) il doit te donner un volume Extra Suite dans lequel tu prend l'application.

Si il ouvre une fenêtre tu fait un double clic sur le fichier dans la fenêtre et tu auras alors le volume.

Maintenant tu pourras tester l'application.

@+


----------



## johny12 (23 Mars 2008)

je vais être absent ces prochains jours (3 jours)

quand je double clic :"





Un grand merci, c'est très agréable d'avoir une réponse dans la demi-journée qui vient. bravo pour la qualité du service 

J'ai aussi essayé de le decompresser ( avec stufix expander ) et cela m'affiche ca :"





donc, quel logiciel dois-je telecharger ?


----------



## flotow (24 Mars 2008)

1) tu t'es gouré d'expander  (tu as un pris une version classique)
2) peut etre utiliser des keystroke (entrer, cmd+r, echap, espace) a la place de deplacer la souris sur une boite de dialogue  (c'est plus simple dans ce cas&#8230



> bravo pour la qualité du service


oui, mais ca, c'est en fonction aussi de l'utilisateur derriere, et qui fourni ses infos plus ou moins clairement! 

P.S/ Courage ceslinstinct!


----------



## ceslinstinct (24 Mars 2008)

Tucpasquic a dit:


> Courage ceslinstinct!


Bonjour

On me l'a jamais fait ça, utiliser un fichier *Sit* comme application.  

Normalement c'est un DMG qui doit être décompressé et avoir un nouveau volume sur l'écran.

@+


----------



## johny12 (24 Mars 2008)

(oulala, qu'est ce que je fait comme connerie)
pouriez-vous me redonner le lien  ?
1)pour extra suites
2)pour decompresser extra suites svp


----------



## ceslinstinct (24 Mars 2008)

johny12 a dit:


> (oulala, qu'est ce que je fait comme connerie)
> pouriez-vous me redonner le lien  ?
> 1)pour extra suites
> 2)pour decompresser extra suites svp



Fait un test avec ce code.


```
activate application "Safari"
tell application "System Events"
	tell application process "Safari"
		repeat
			keystroke "r" using command down
			delay 10 -- Laisser le temps de réaffichage de la fenêtre
			keystroke return -- Devrais sélectionner le bouton bleu de la fenêtre d'alerte
			delay 300
		end repeat
	end tell
end tell
```

*Non testé*, j'ai pas de fenêtre d'alerte.

*delay 10* c'est un temps en secondes a régler suivant la vitesse d'affichage.

Ce n'est pas une grosse bêtise, puisqu'il n'y avait aucun risque, ça ne pouvais simplement pas marcher.

PS: Oublie pas de placer le fichier Extra Suite que tu as, il est inutile pour ton ordinateur c'est une version pour OS 9.

@+


----------



## johny12 (24 Mars 2008)

merci de la patience accordée ( je met du temps à comprendre )

le script est super, c'est exactement ce que je cherchais


----------



## ceslinstinct (24 Mars 2008)

johny12 a dit:


> merci de la patience accordée ( je met du temps à comprendre )
> 
> le script est super, c'est exactement ce que je cherchais



Donc ça marche?

Alors content pour toi

Un merci à *Tucpasquic* qui a eu raison de dire, pourquoi faire compliqué quand on peut faire simple.

En plus tu économise 10$ le prix du shareware.

Cordialement


----------

