QTP - Identificatori ordinali

A volte, ci sono serie di oggetti con lo stesso nome di classe e proprietà. Diciamo che in una finestra ci sono serie di caselle di controllo con lo stesso insieme di proprietà. Se vogliamo agire su quegli oggetti, dobbiamo identificarli in modo univoco in modo che QTP possa agire su di essi.

Un identificatore ordinale assegna un valore numerico agli oggetti di prova, che ne indica la posizione o l'ordine rispetto al suo gruppo. Il valore Ordered consente a QTP di riconoscerlo in modo univoco quando le proprietà incorporate NON sono sufficienti per farlo.

Ci sono tre identificatori ordinali in QTP che possono essere utilizzati in diversi contesti:

  • Index
  • Location
  • Tempo di creazione

Indice

Un oggetto che appare per primo nella pagina / finestra avrà un valore Indice inferiore rispetto a un altro oggetto che viene successivamente nella stessa pagina / finestra.

Il valore dell'indice per il gruppo di caselle di testo sarà il seguente:

Nome oggetto Valore indice
TextBox 1 0
TextBox 4 1
TextBox 2 2
TextBox 5 3
TextBox 3 4
TextBox 6 5

Posizione

La proprietà Location funziona verticalmente dall'alto verso il basso e da sinistra a destra. Quindi, per lo stesso caso, il valore della posizione per il gruppo di caselle di testo sarà il seguente:

Nome oggetto Valore indice
TextBox 1 0
TextBox 2 1
TextBox 3 2
TextBox 4 3
TextBox 5 4
TextBox 6 5

Tempo di creazione

La proprietà Ora di creazione vale solo per applicazioni basate sul Web. Quando apriamo due sessioni del browser dello stesso sito Web, QTP non sarà in grado di riconoscere la finestra, poiché entrambe le finestre avranno lo stesso insieme di proprietà. Quindi, possiamo usare il tempo di creazione con il quale QTP sarà in grado di agire sulla finestra.

'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"

Quindi, per lavorare su un browser specifico, dobbiamo menzionare esplicitamente l'ora di creazione in OR oppure possiamo usare la descrizione degli oggetti, che vedremo in dettaglio nella sezione di programmazione descrittiva.

'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