O Teste Funcional suporta um meio para localizar um ou mais TestObjects
que correspondam a critérios de procura especificados. A procura baseia-se em pares de nomes/valores
que representam propriedades do TestObject
ou TestObjects
que estão sendo procurados. A procura pode ser global ou estar limitada a filhos
de um TestObject
pai.
O Teste Funcional suporta um RootTestObject
para representar
uma visualização global do software em teste. Para executar uma procura global,
chame o método de localização no RootTestObject
. Chamar
um método de localização TestObject
procurará apenas os filhos
desse TestObject
.
O primeiro argumento no método de localização é um subitem para as propriedades de procura. O segundo argumento opcional é um sinalizador que indica se apenas os filhos que podem ser incluídos no mapa de objetos de teste devem ser procurados. Os valores válidos para os subitens da propriedade são:
atProperty
-- Um par de nome/valor que representa uma propriedade TestObject
atChild
-- Uma ou mais propriedades que devem ser correspondidas no filho direto
do TestObject
inicial
atDescendant
-- Uma ou mais propriedades que podem ser correspondidas em qualquer filho do
TestObject
inicial
atList
-- Uma lista seqüencial de propriedades nas quais corresponder. Os subitens válidos para
atList
são:
atChild
atDescendant
atProperty
O primeiro item da lista é correspondido para obter uma lista de candidatos e, desses candidatos, seus descendentes são correspondidos para o próximo item da lista, etc.
Há propriedades especiais que se aplicam a RootTestObject.find, incluindo:
.processName
-- Uma propriedade de nível superior que possui duas funções:
Ativar dinamicamente os processos com esse
processName
Limitar a localização apenas a processos com esse nome
.processId
-- Uma
propriedade de nível superior que possui duas funções:
Ativar dinamicamente os processos com esse pid (id do processo)
Limitar a localização apenas a processos com esse pid (id do processo)
.domain
-- Um sinalizador que especifica a procura apenas em domínios de nível superior que correspondam à propriedade
de domínio
.hWnd
-- Junto com a propriedade hWnd
sendo utilizada para a procura, se o .domain
"Win" também estiver especificado, a janela de correspondência será ativada
para teste com o domínio do Windows.
Handle
-- Junto com a propriedade handle da janela sendo utilizada para a procura, se
o .domain
"Net" também estiver especificado, a janela de correspondência
será ativada para teste com o domínio .NET.
Exemplos:
TestObject[] foundTOs ; RootTestObject root = RootTestObject.getRootTestObject() ; // Localizar todas as janelas de nível superior no domínio do Windows com a legenda "My // Document" CaptionText caption = new CaptionText("My Document") ; foundTOs = root.find(atChild(".domain", "Win", ".caption", caption)) ; // Localizar os diálogos e, em seguida, retornar // os botões "OK" de seus filhos. RegularExpression dialogRE = new RegularExpression("*dialog", false) ; RegularExpression buttonRE = new RegularExpression("*button", false) ; foundTOs = root.find(atList(atDescendant(".class", dialogRE), atChild(".class", buttonRE, ".value", "OK"))) ; // Iniciar o Bloco de Notas, ativar dinamicamente esse processo, // localizar sua janela de nível superior que corresponde ao id de processo // e obter sua janela de texto descendente. ProcessTestObject p1 = StartApp("Notepad") ; Integer pid = new Integer((int)p1.getProcessId()) ; foundTOs = root.find(atList(atProperty(".processId", pid, atDescendant(".class", ".text"))) ;
// Isso ativa um aplicativo Windows com a propriedade handle da janela fornecida e retorna um // TestObject representando a janela. Long hWnd = getAppsHwnd(); foundTOs = root.find(atChild(".hwnd", hWnd, ".domain", "Win"));
// Isso ativa um aplicativo .NET com a propriedade handle da janela fornecida e retorna um // TestObject representando a janela. Long handle = getAppsHwnd(); foundTOs = root.find(atChild("Handle", handle, ".domain", "Net"));
Termos de uso | Feedback
(C) Copyright IBM Corporation 2002, 2004. Todos os Direitos Reservados.