WEB-Seiten, Internationale Setups und vieles mehr: AGR\

Alle Fragen, Tipps und Tricks rund um ACMP AutoMATE
Antworten
theogott
Beiträge: 15
Registriert: So Feb 27, 2011 3:29 pm

AGR\ erweitert die bisherigen Grenzen des ACMP AutoMATE auf WEB- und Office-Anwendungen. Nebenbei werden mit AGR\ an vielen Stellen beliebige Internationalisierungen möglich.

Man kann mit dem ACMP AutoMATE fast in jedem Befehl durch Verwendung der Suchpatterns 2 Internationalisierungen vornehmen, zum Beispiel:

Code: Alles auswählen

AFO\42\Deutscher Name||English name
Mit dem Befehl AGR\ kann man nun unbegrenzt viele Internationalisierungen umsetzen.
Zum Beispiel:

Code: Alles auswählen

AGR\42\Deutscher Name&OR:English name&OR:Spanisch nombre etc.
Es gibt bei AGR\ im Bezug auf die Patterns fast keine Beschränkungen wie unten zu sehen ist.

Wird AGR\zum Suchen von Buttons eingesetzt und nur eine begrenzte Anzahl Buttons stehen zur Verfügung, könnte man europäische Sprachen sogar mit einem FUZZY-Logic-Pattern erfassen:

Wenige Zeichen wie hier:

Code: Alles auswählen

AGR\42\Name&FUZZY:3
genügen oftmals um alle Dialekte einzuschliessen ( => in diesem Fall sind 3 Tippfehler erlaubt und das Wort wird trotzdem akzeptiert).

AGR\ ersetzt auch den ACMP AutoMATE -Befehl AFO\ in den Fällen, wo eine einfache und schnelle Suche benötigt wird, die so schnell wie möglich ausgeführt werden soll.

Dies ist zum Beispiel auf großen, sich ändernden HTML-Seiten oder in ASP-Anwendungen der Fall.

Da AGR\ intern eine andere Pattern-Engine benutzt wird, müssen hier andere Jokerzeichen und Wildcards verwendet werden als in den übrigen ACMP AutoMATE -Befehlen. Auch deshalb kann AGR\ in der Version 8.5 nicht mit der "gelben Liste" aufgezeichnet werden, sondern muss manuell codiert werden.

Die Syntax lautet etwa:

Code: Alles auswählen

AGR\[wartezeit in s|]Role\Name\Value\Number[\Flag][:Label]
Als Suchfenster wird intern das zuletzt lokalisierte Fenster eingesetzt.

Ob das gesuchte Element gefunden wurde, kann mit dem Befehl IIF\ (= If Instruction Failed)festgestellt werden.

Um mit AGR\ auf das Erscheinen eines Elementes auf einer WEB-Seite zu warten würde man so vorgehen:

Code: Alles auswählen

Beispiel:

CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
HTV\$$MYW

:Lab
' Fenster lokalisieren
SCW\$$MYW
AGR\42\Login
IIF\
TDL\100
 GOTO Lab
EIF\
' Fortfahren, wenn Element vorhanden ist
MMV\
oder einfacher:

Code: Alles auswählen

:Lab
TDL\120
' Fenster lokalisieren
SCW\$$MYW
AGR\42\Login\\\:Lab
' Fortfahren wenn Element vorhanden ist
MMV\
Bei der Befehlsausführung wird der aktuelle Punkt gesetzt und das gefundene Element in die Bildmitte gescrollt.

Das AGR\ verwendet anstelle der ACMP AutoMATE -Standard-Suchmuster diese weiterentwickelten Suchmuster:

Code: Alles auswählen

{&DOCAPS:}             {&0:}             {&DOCAPS:ExPE} -> Gross-
Kleinschreibung beachten.
 {&OR:}                 {&1:}             {Text1&OR:Text2} -> A oder B oder beides
 {&XOR:}                {&2:}             {Text1&XOR:Text2} -> A oder B
 {&AND:}                {&3:}             {Text1&AND:Text2} -> A und B Reihefolge egal
 {&ANDTHEN:}            {&4:}             {Text1&ANDTHEN:Text2} -> A dann B
 {&FUZZY:}              {&5:}             {{Text1}&FUZZY:[value]} -> ungefähr A
 {&TOLERANT:}           {&6:}             {{Text1}&TOLERANT:[value]} -> A zu min. X% 
 {&NOT:}                {&7:}             {&NOT:{Text1}} -> Darf nicht vorkommen
 {&EXACT:}              {&8:}             {&EXACT:Text1} -> genau A (Ohne Grossklein)
 {&NOTEXT:}             {&9:}             {&9:} 

 {&t:}     - Always True
 {&f:}     - Always False
Die einfachen Operatoren können beliebig oft wiederholt werden, also:

Code: Alles auswählen

{Text1&OR:Text2&OR:Text2&OR:Text2&OR:Text2... usw.}
Es gibt keine Beschränkung auf 2 Operatoren, wie bei den bisherigen ACMP AutoMATE -Suchmustern , also bei AFO\(?), STW\ etc.
Dadurch sind beliebig viele Internationalisierungen im gleichen Script denkbar.

Das {&EXACT:Text1}-Pattern ersetzt das ACMP AutoMATE Standard-Suchmuster "Text1&&" (&& am Ende).

Prinzipiell sind auch Verschachtelungen möglich, solange man die Klammern korrekt setzt,

Also zum Beispiel:

Code: Alles auswählen

{{{Text1&ORText2}&ANDTHEN:{Text1&ORText4}}&ANDTHEN:Text2}
Neu hinzugekommen ist der fortschrittliche "Tippfehler-Operator"
Beispiel:

Code: Alles auswählen

{Text1&FUZZY:5} 


Die Zahl hinter dem "&FUZZY:" gibt an, wie oft man sich vertippen darf, so dass der Text trotzdem erkannt wird.

Ebenso neu hinzugekommen ist der "TOLERANT" Operator.
Hierbei wird ein %-Zahl angegeben, die die Wortähnlichkeit angibt, ab der Text der Bedingung entspricht oder nicht.

Beispiel:

Code: Alles auswählen

{Text1&TOLERANT:89}
Bei allen Operatoren kann jeweils das &DOCAPS: verwendet werden. Dadurch wird die jeweilige Klammerebene auf Gross/Klein-Schrift umgeschaltet, berücksichtigt dann also Gross- und Kleinschreibung.

Beispiele:

Code: Alles auswählen

' Ein Button mit der Beschriftung "Senden" soll lokalisiert werden, es genügt die Angabe eines Teils
' der Beschriftung um den Button zu lokalisieren
STW\opusapp\ - nachricht|w30
GCW\0\3\#32770\*|w30
AGR\43\Sende
MMV\

' Der Button heißt "Senden" ohne Groß- Kleinschreibung zu unterschieden.
' Ein Button mit der Beschriftung "Senden" soll lokalisiert werden
' Würden wir hier auch nur "Sende" angeben (ohne "n") würde der Button nicht gefunden!
STW\opusapp\ - nachricht|w30
GCW\0\3\#32770\*|w30
AGR\43\&EXACT:Senden
MMV\

' In diesem Beispiel wollen wir dass auch Gross- Kleinschreibung berücksichtigt wird.
' Dazu verwenden wir den "&DOCAPS: -Operator.
' Würden wir hier &EXACT:&DOCAPS:SEnden angeben als Parameter, würde der Button nicht gefunden!
STW\opusapp\ - nachricht|w30
GCW\0\3\#32770\*|w30
AGR\43\&EXACT:&DOCAPS:Senden
MMV\

' Nun wenden wir uns einer WEB-Seite zu, sicherlich ein Haupteinsatzgebiet für AGR\
' Hier suchen wir einen Text (Role 42), der die Worte "Hardware" und "Journal" enthält.
' Dabei achten wir nicht auf Gross-/Kleinschreibung

CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
AGR\42\Hardware&AND:Journal
MMV\


' Allerdings würde im vorigen Beispiel auch ein Text "Journal der aktuellen Hardware" gefunden werden.
' das wollen wir nicht, daher nehmen wir den &ANDTHEN: Operator.
' Nun muss der zweite Term nach dem ersten im Text stehen!

CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
AGR\42\manager&ANDTHEN:magazin
MMV\

Diese Operatoren können auch aneinandergereiht werden, zum Beispiel wenn wir "Computer Partner News" suchen:

Code: Alles auswählen

CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
AGR\42\ompu&ANDTHEN:ner&ANDTHEN:ews
MMV\

' Oder auch mit Berücksichtigung der Gross- und Kleinschreibung im jeweiligen Term:
AGR\42\ompu&ANDTHEN: &DOCAPS:ner&ANDTHEN:&DOCAPS:ews

oder auch komplexer:
AGR\42\{&DOCAPS:Computer&AND:{ompu&ANDTHEN:&DOCAPS:ner&ANDTHEN:&DOCAPS:ews}}

' Die AGR\Suchpattern kann man abkürzen, um Schreibarbeit zu sparen.
' Im Fall oben würde das so aussehen, wäre allerdigns schlechter verständlich.
AGR\42\{&0:Computer&3:{ompu&4:&0:ner&4:&0:ews}}
Theo Gottwald
Selbständiger IT-Berater

ACMP AutoMATE Professional
Let the Robots do it for you.
Antworten