QTP: identificadores ordinales

A veces, hay series de objetos con el mismo nombre de clase y propiedades. Digamos que en una ventana hay una serie de casillas de verificación con el mismo conjunto de propiedades. Si queremos actuar sobre esos objetos, necesitamos identificarlos de forma única para que QTP pueda actuar sobre ellos.

Un identificador ordinal asigna un valor numérico a los objetos de prueba, que indica su ubicación u orden en relación con su grupo. El valor Ordered permite que QTP lo reconozca de manera única cuando las propiedades incorporadas NO son suficientes para hacerlo.

Hay tres identificadores ordinales en QTP que se pueden usar en diferentes contextos:

  • Index
  • Location
  • Tiempo de creación

Índice

Un objeto que aparece primero en la página / ventana tendrá un valor de índice más pequeño en comparación con otro objeto que aparece más tarde en la misma página / ventana.

El valor del índice para el grupo de cuadros de texto será el siguiente:

Nombre del objeto Valor de índice
TextBox 1 0
Cuadro de texto 4 1
TextBox 2 2
Cuadro de texto 5 3
TextBox 3 4
TextBox 6 5

Ubicación

La propiedad Ubicación funciona verticalmente de arriba a abajo y de izquierda a derecha. Por lo tanto, para el mismo caso, el valor de ubicación para el grupo de cuadros de texto será el siguiente:

Nombre del objeto Valor de índice
TextBox 1 0
TextBox 2 1
TextBox 3 2
Cuadro de texto 4 3
Cuadro de texto 5 4
TextBox 6 5

Tiempo de creación

La propiedad Creation Time es válida solo para aplicaciones basadas en web. Cuando abrimos dos sesiones de navegador del mismo sitio web, QTP no podrá reconocer la ventana, ya que ambas ventanas tendrán el mismo conjunto de propiedades. Por tanto, podemos utilizar el tiempo de creación con el que QTP podrá actuar sobre la ventana.

'Will have CreationTime value = 0 
SystemUtil.Run "iexplore.exe", "http://www.google.com"       

'Will have CreationTime value = 1  
SystemUtil.Run "iexplore.exe", "http://www.yahoo.com"        

'Will have CreationTime value = 2    
SystemUtil.Run "iexplore.exe", "http://www.microsoft.com"   

'Will have CreationTime value = 3   
SystemUtil.Run "iexplore.exe", "http://www.facebook.com"

Por lo tanto, para trabajar en un navegador específico, necesitamos mencionar explícitamente el tiempo de creación en OR o podemos usar la descripción de objetos, que veremos en detalle en la sección de programación descriptiva.

'Sync's www.google.com 
Browser("creationtime:=" ).Sync                  

'Gets the RO text property of www.yahoo.com  
Browser("creationtime:=1").GetROProperty("text")    

'Highlights microsoft.com 
Browser("creationtime:=2").Highlight