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
Zum Beispiel:
Code: Alles auswählen
AGR\42\Deutscher Name&OR:English name&OR:Spanisch nombre etc.
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
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]
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\
Code: Alles auswählen
:Lab
TDL\120
' Fenster lokalisieren
SCW\$$MYW
AGR\42\Login\\\:Lab
' Fortfahren wenn Element vorhanden ist
MMV\
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
Code: Alles auswählen
{Text1&OR:Text2&OR:Text2&OR:Text2&OR:Text2... usw.}
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}
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}
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}}