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