Manipulação de Reconhecimento Ambíguo

Em algumas situações durante a reprodução, é possível que o Teste Funcional não consiga diferenciar entre dois objetos semelhantes no software em teste. Por exemplo, em aplicativos HTML quando mais de uma instância de navegador está ativa, reconhecer entre um e outro navegador nas ações da barra de ferramentas seria impossível se tivessem sido gravados como nestes exemplos:

BrowserToolbar_Back().click()
BrowserToolbar_Forward().click()

Em casos desse tipo, o Teste Funcional evita o reconhecimento ambíguo localizando o botão da barra de ferramentas no navegador que está identificado por seu documento carregado no momento (referido como uma âncora para o objeto de destino. Por exemplo:

BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(),
  DEFAULT), DEFAULT).click();

O botão voltar da barra de ferramentas está ancorado pelo navegador, que está ancorado pelo documento "My HomePage". Esse exemplo não funcionará, naturalmente, se cada instância do navegador tiver o mesmo documento carregado. Observe que os métodos de script auxiliares que utilizam uma âncora como argumento também requerem outro argumento que especifique o estado do componente (o argumento DEFAULT no exemplo anterior). O estado padrão para objetos HTML é LOADED. Para componentes HTML, também são possíveis LOADING e UNINITIATED. O estado padrão para objetos Java é SHOWING e ENABLED. Outros sinalizadores de estado suportados para objetos Java são NOT_SHOWING e DISABLED.

Além disso, você pode identificar a instância do navegador utilizando uma referência TestObject para ela, chamando o método de localização no navegador, como a seguir (lembre-se de cancelar o registro de TestObject quando terminar):

TestObject browserOne = Browser_htmlBrowser(Document_MyHomePage(),
  DEFAULT).find();

Os comandos da barra de ferramentas do navegador no script de teste seriam semelhantes a este exemplo:

BrowserToolbar_Back(myBrowser, DEFAULT).click();

Outra situação em que o reconhecimento ambíguo pode ser problema é quando um teste tem mais de um aplicativo em execução ao mesmo tempo. Durante a reprodução, comandos como b5().click() são ambíguos. Como o comando startApp retorna ProcessTestObject, essa referência pode ser utilizada para especificar a qual aplicativo um determinado comando se aplica. Por exemplo:

ProcessTestObject p1 = startApp("SwingTest");
ProcessTestObject p2 = startApp("TryIt");

...

//b5().click(); ambiguous on playback; which application?


b5(p1, DEFAULT).click();

Na última linha do exemplo, o ProcessTestObject funciona como âncora para localizar o aplicativo desejado. Observe que chamar o método cancelar registro para um ProcessTestObject não é necessário.

Termos de uso | Feedback
(C) Copyright IBM Corporation 2002, 2004. Todos os Direitos Reservados.