Functional Test unterstützt die Suche nach einem oder mehreren Testobjekten (TestObjects
), die angegebenen Suchkriterien entsprechen. Die Suche basiert auf Name/Wert-Paaren, die die Eigenschaften des gesuchten Testobjekts (TestObject
) oder der gesuchten Testobjekte (TestObjects
) darstellen. Sie können die Suche entweder global durchführen oder auf untergeordnete Elemente eines übergeordneten Testobjekts (TestObject
) beschränken.
Functional Test unterstützt ein Stammtestobjekt (RootTestObject
), das einen umfassenden Überblick über die getestete Software bietet. Zum Ausführen einer globalen Suche rufen Sie die Suchmethode für das Stammtestobjekt (RootTestObject
) auf. Durch das Aufrufen einer Suchmethode für ein Testobjekt (TestObject
) wird die Suche auf die untergeordneten Elemente dieses Testobjekts (TestObject
) beschränkt.
Das erste Argument in der Suchmethode ist ein subitem-Element für die Eigenschaften der Suche. Das zweite (optionale) Argument ist eine Markierung, die anzeigt, ob nur nach untergeordneten Elementen gesucht werden soll, die möglicherweise in der Testobjektübersicht enthalten sind. Folgende Werte von subitem-Elementen für Eigenschaften sind gültig:
atProperty
- ein Name/Wert-Paar, das eine Eigenschaft eines Testobjekts (TestObject
) darstellt
atChild
- eine oder mehrere Eigenschaften, die mit dem direkten untergeordneten Element des Starttestobjekts (TestObject
) abgeglichen werden müssen
atDescendant
- eine oder mehrere Eigenschaften, die mit einem beliebigen untergeordneten Element des Starttestobjekts (TestObject
) abgeglichen werden können
atList
- eine sequenzielle Liste von Eigenschaften zum Abgleichen. Für atList
sind folgende subitem-Elemente gültig:
atChild
atDescendant
atProperty
Der erste Listeneintrag wird abgeglichen, so dass eine Liste mit Kandidaten erstellt wird, deren untergeordnete Elemente mit dem nächsten Listeneintrag abgeglichen werden usw.
Folgende spezielle Eigenschaften beziehen sich auf "RootTestObject.find":
.processName
- eine Eigenschaft der höchsten Ebene mit zwei Funktionen:
Prozesse mit diesem Prozessnamen (processName
) dynamisch aktivieren
Die Suche so eingrenzen, dass nur in Prozessen mit diesem Namen gesucht wird
.processId
- eine Eigenschaft der höchsten Ebene mit zwei Funktionen:
Prozesse mit dieser Prozess-ID (pid) dynamisch aktivieren
Die Suche so eingrenzen, dass nur in Prozessen mit dieser Prozess-ID (pid) gesucht wird
.domain
- eine Markierung, die die alleinige Suche in Domänen der höchsten Ebene anzeigt, die der Domäneneigenschaft entsprechen
.hWnd
- Zusammen mit der für die Suche verwendeten Eigenschaft hWnd
wird das entsprechende Fenster für Tests in der Windows-Domäne aktiviert, sofern als .domain
"Win" ebenfalls angegeben ist.
Handle
- Zusammen mit der für die Suche verwendeten Fensterkennungseigenschaft wird das entsprechende Fenster für Tests in der .NET-Domäne aktiviert, sofern als .domain
"Net" ebenfalls angegeben ist.
Beispiele:
TestObject[] foundTOs ; RootTestObject root = RootTestObject.getRootTestObject() ; // Find all toplevel windows in the Windows domain with caption "My // Document" CaptionText caption = new CaptionText("My Document") ; foundTOs = root.find(atChild(".domain", "Win", ".caption", caption)) ; // Find any dialogs, then return their children // "OK" buttons. RegularExpression dialogRE = new RegularExpression("*dialog", false) ; RegularExpression buttonRE = new RegularExpression("*button", false) ; foundTOs = root.find(atList(atDescendant(".class", dialogRE), atChild(".class", buttonRE, ".value", "OK"))) ; // Start Notepad, dynamically enable that process, // find its top-level window that matches the process id // and get its descendant text window. ProcessTestObject p1 = StartApp("Notepad") ; Integer pid = new Integer((int)p1.getProcessId()) ; foundTOs = root.find(atList(atProperty(".processId", pid, atDescendant(".class", ".text"))) ;
// This enables a Windows app with the provided window handle and returns a // TestObject representing the window. Long hWnd = getAppsHwnd(); foundTOs = root.find(atChild(".hwnd", hWnd, ".domain", "Win"));
// This enables a .NET app with the provided window handle and returns a // TestObject representing the window. Long handle = getAppsHwnd(); foundTOs = root.find(atChild("Handle", handle, ".domain", "Net"));
Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2002, 2004. Alle Rechte vorbehalten.