QTP - identificadores ordinais

Às vezes, há uma série de objetos com o mesmo nome de classe e propriedades. Digamos que, em uma janela, haja uma série de caixas de seleção com o mesmo conjunto de propriedades. Se quisermos agir sobre esses objetos, precisamos identificá-los exclusivamente para que o QTP seja capaz de agir sobre eles.

Um Identificador Ordinal atribui um valor numérico aos objetos de teste, que indica sua localização ou ordem em relação ao seu grupo. O valor Ordered permite que o QTP o reconheça exclusivamente quando as propriedades embutidas NÃO são suficientes para fazê-lo.

Existem três identificadores ordinais no QTP que podem ser usados ​​em diferentes contextos -

  • Index
  • Location
  • Tempo de Criação

Índice

Um objeto que apareça primeiro na página / janela terá um valor de índice menor quando comparado a outro objeto que vem depois na mesma página / janela.

O valor do índice para o grupo de caixas de texto será o seguinte -

Nome do Objeto Valor do Índice
TextBox 1 0
TextBox 4 1
TextBox 2 2
TextBox 5 3
TextBox 3 4
TextBox 6 5

Localização

A propriedade Location funciona verticalmente de cima para baixo e da esquerda para a direita. Portanto, para o mesmo caso, o valor da localização para o grupo de caixas de texto será o seguinte -

Nome do Objeto Valor do Índice
TextBox 1 0
TextBox 2 1
TextBox 3 2
TextBox 4 3
TextBox 5 4
TextBox 6 5

Tempo de Criação

A propriedade Creation Time é válida apenas para aplicativos baseados na web. Ao abrir duas sessões de navegador do mesmo site, o QTP não será capaz de reconhecer a janela, pois ambas as janelas terão o mesmo conjunto de propriedades. Assim, podemos usar o tempo de criação com o qual o QTP poderá atuar na janela.

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

Portanto, para trabalhar em um navegador específico, precisamos mencionar explicitamente o tempo de criação em OR ou podemos usar a descrição dos objetos, que veremos em detalhes na seção de programação descritiva.

'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