Manejo del reconocimiento ambiguo

En algunas situaciones durante la reproducción, es posible que Functional Tester no pueda diferenciar entre dos objetos parecidos en el software sometido a prueba. En este tema se describe cómo manejar estas situaciones.

Por ejemplo, en aplicaciones HTML, cuando más de una instancia de un navegador está activa, la acción de reconocer un navegador de otro en las acciones de la barra de herramientas resultaría imposible si se grabaran de la siguiente manera:

     BrowserToolbar_Back().Click()
     BrowserToolbar_Forward().Click()

En casos como este, Functional Tester evita el reconocimiento ambiguo mediante la ubicación del botón de la barra de herramientas en el navegador que identifica el documento cargado actualmente (al cual se refiere como ancla del objeto de destino).Por ejemplo:

     BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(), _
        DEFAULT), DEFAULT).Click()

El navegador, anclado por el documento "My HomePage", ancla el botón Atrás de la barra de herramientas. Este ejemplo no funcionaría, si cada instancia del navegador tuviera el mismo documento cargado. Tenga en cuenta que los métodos de script del asistente que tienen un ancla como argumento también necesitan otro argumento que especifique el estado del componente (el argumento DEFAULT en el ejemplo anterior). El estado predeterminado de los objetos HTML es READY. En los componentes HTML también se admiten LOADING y UNINITIALIZED. El estado predeterminado de los objetos Java es SHOWING y ENABLED. Otros distintivos de estado soportados son NOT_SHOWING y DISABLED.

Además, se puede identificar la instancia del navegador utilizando una referencia de objeto de prueba e invocando el método Find en el navegador de la manera siguiente:

     TestObject BrowserOne = Browser_htmlBrowser(Document_MyHomePage(),
        DEFAULT).Find()
Nota: Recuerde cancelar el registro del objeto de prueba cuando haya acabado.

Los mandatos de la barra de herramientas del navegador en el script de prueba se parecen a este ejemplo:

     BrowserToolbar_Back(MyBrowser, DEFAULT).Click()

Otra situación donde el reconocimiento ambiguo puede suponer un problema es cuando una prueba tiene más de una aplicación ejecutándose a la vez. Durante la reproducción, los mandatos como b5().Click() son ambiguos. Dado que el mandato StartApp devuelve ProcessTestObject, esta referencia puede utilizarse para definir qué aplicación se aplica a un mandato determinado. Por ejemplo:

     ProcessTestObject P1 = StartApp("SwingTest")
     ProcessTestObject P2 = StartApp("TryIt")
     ...
     B5().Click() REM (ambiguous on playback; which application?)
     B5(P1, DEFAULT).Click()

En la última línea del ejemplo, ProcessTestObject funciona como ancla para ubicar la aplicación deseada. Tenga en cuenta que no es necesario llamar al método Unregister para un ProcessTestObject.


Comentarios