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 é READY. Para componentes HTML, também são possíveis LOADING e UNINITIALIZED. O estado padrão para objetos Java é SHOWING e ENABLED. Outros sinalizadores de estado suportados 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 Localizar no navegador, como a seguir:

     TestObject BrowserOne = Browser_htmlBrowser(Document_MyHomePage(),
        DEFAULT).Find()

Nota: Lembre-se de cancelar o registro de TestObject quando terminar.

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 um 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() REM (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.