Como funciona a identificação de objetos em QTP/UFT?
ā” Resumo Inteligente
Identificação de objetos em QTP/UFT Determina como a ferramenta reconhece cada elemento da interface grÔfica durante a execução de um teste, comparando as propriedades armazenadas do Objeto de Teste com as propriedades ativas do Objeto de Tempo de Execução, para que os scripts continuem funcionando mesmo quando o layout da tela muda.

O que é identificação de objetos em UFT/QTP?
A identificação de objetos é o mecanismo. UFT/QTP Utiliza-se para reconhecer um elemento da interface grÔfica na tela, permitindo que um script atue sobre ele de forma confiÔvel, execução após execução. Durante uma sessão de gravação, UFT O programa estuda um pequeno conjunto de propriedades do objeto sob o ponteiro do mouse e as armazena; durante a reprodução, compara esses valores armazenados com as propriedades de todos os objetos presentes e escolhe aquele que corresponde exclusivamente, independentemente de onde esse objeto esteja posicionado na tela.
O objeto armazenado, juntamente com as propriedades UFT lembra disso, é chamado de Objeto de testeO elemento correspondente que existe na tela enquanto o teste é executado é o Objeto de tempo de execuçãoComparar os dois em cada etapa é a base do que a Micro Focus chama de Modelo de Objeto de TesteE é por isso que um UFT O script continua funcionando mesmo depois que um botão se move alguns pixels ou uma pÔgina é reestilizada.
Repositório de objetos e complementos
UFT mantém cada objeto de teste aprendido, juntamente com suas propriedades armazenadas, dentro do Repositório de Objetos. Adicionar-ins dizer Teste rÔpido O sistema permite que a ferramenta identifique antecipadamente a tecnologia à qual uma tela pertence, para que ela jÔ saiba qual conjunto de propriedades se aplica e não precise adivinhar, o que reduz o tempo necessÔrio para aprender um objeto.
Clique aqui. se o vĆdeo nĆ£o estiver acessĆvel
Todo objeto UFT Os registros podem conter dezenas de propriedades. Somente em um ambiente web, um Ćŗnico botĆ£o pode expor seu nome, tag HTML, tipo, classe, Ćndice e muito mais. Registrar todas essas propriedades para cada objeto Ć© tecnicamente possĆvel, mas raramente Ćŗtil, como mostra a próxima imagem para uma entrada tĆpica do Repositório de Objetos.
If UFT Se tentĆ”ssemos memorizar todas as propriedades disponĆveis para cada objeto, o Repositório de Objetos aumentaria muito de tamanho e a execução do script ficaria visivelmente mais lenta. Para evitar isso, QTP Por padrĆ£o, nĆ£o salva todas as propriedades ā salva um pequeno conjunto tĆpico para cada tipo de objeto, escolhido para facilitar a visualização. identificação Ćŗnica possĆvel sem sobrecarga. Essa lista restrita de propriedades, definida separadamente para cada ambiente e classe de objeto, Ć© configurada nas definiƧƵes de Identificação de Objetos, abordadas a seguir.
objeto Description: Propriedades Obrigatórias e Auxiliares
A propriedade de um objeto e seu valor juntos formam o quĆŖ? UFT chama o objeto DescriptĆon ā a combinação exata que a ferramenta usa para selecionar um elemento dentre todos os outros objetos da pĆ”gina. Para um WebButton, por exemplo, a propriedade nome com o valor Entrar por si só, muitas vezes, Ć© suficiente para formar um objeto utilizĆ”vel. DescriptĆon.
Para rever ou alterar este comportamento, abra Ferramentas > Identificação de Objetos dentro UFTA caixa de diÔlogo Identificação de Objetos lista todos os ambientes atualmente carregados; selecionar um deles preenche automaticamente as classes de objetos. UFT O painel à direita oferece suporte a isso e mostra exatamente quais propriedades são armazenadas para objetos dessa classe. A lista é dividida em dois grupos:
- Propriedades obrigatórias São armazenados para cada objeto dessa classe por padrão, independentemente de serem ou não necessÔrios para diferenciÔ-lo de seus vizinhos.
- Propriedades assistivas sĆ£o armazenadas somente quando as propriedades obrigatórias, por si só, nĆ£o conseguem construir uma descrição Ćŗnica ā UFT O processo percorre essa lista, uma propriedade de cada vez, atĆ© que o objeto se torne Ćŗnico.
Uma imagem na web facilita a visualização da regra na prÔtica.
- UFT O sistema sempre armazena o texto alternativo, a tag HTML e o tipo de imagem para uma Imagem da Web, mesmo quando apenas o texto alternativo jĆ” Ć© Ćŗnico.
- Se as propriedades obrigatórias não conseguirem criar uma descrição única, UFT Adiciona a propriedade de classe da lista auxiliar.
- Assim que uma propriedade torna a descrição Ćŗnica, UFT Para de adicionar mais elementos ā ignora o nome do arquivo e a altura se a classe jĆ” for suficiente, ignora a altura se o nome do arquivo for necessĆ”rio e assim por diante.
- Suponha que apenas a propriedade da classe seja registrada no momento da gravação. Em tempo de execução, UFT NĆ£o distingue mais quais propriedades eram obrigatórias e quais eram auxiliares ā simplesmente compara cada propriedade na descrição salva com o objeto em tempo de execução.
- Se ao menos uma propriedade armazenada nĆ£o corresponder, a etapa falha ā uma descrição Ćŗnica Ć© binĆ”ria, nĆ£o uma correspondĆŖncia do melhor esforƧo.
| Aspecto | Propriedades obrigatórias | Propriedades Assistivas |
|---|---|---|
| Quando armazenado | Sempre, para cada objeto dessa classe. | Somente quando as propriedades obrigatórias não conseguem formar uma descrição única. |
| Configurado em | DiÔlogo de identificação de objetos, Lista obrigatória | DiÔlogo de identificação de objetos, Lista auxiliar |
| Ordem de uso | Aprendido primeiro, incondicionalmente | Adicionado um de cada vez até que o objeto seja único. |
| tratamento de tempo de execução | Comparado da mesma forma que propriedades assistivas | Comparado da mesma forma que propriedades obrigatórias |
O vĆdeo abaixo demonstra detalhadamente esse fluxo de trabalho obrigatório versus assistivo.
A caixa de diÔlogo de identificação de objetos Box e Espião de Objetos
A caixa de diĆ”logo de Identificação de Objetos nĆ£o Ć© apenas um visualizador ā Ć© onde um testador ajusta a agressividade da ferramenta. UFT Identifica objetos para todo um ambiente. Reordenar, adicionar ou remover uma propriedade aqui altera o que Ć© aprendido para todos os objetos dessa classe a partir desse ponto, nĆ£o apenas para aquele que estĆ” sendo registrado no momento. O fluxo de trabalho tĆpico Ć© o seguinte:
- Abra UFT e vai para Ferramentas > Identificação de Objetos.
- Escolha um ambiente (Web, Windows, Java, e assim por diante) no menu suspenso.
- Selecione uma classe de objeto, como WebButton ou WinEdit, na lista Ć esquerda.
- Mova propriedades entre as listas Obrigatórias e Auxiliares ou reordene a lista Auxiliares para controlar qual propriedade serÔ exibida. UFT tenta primeiro.
- Ative ou desative a Identificação Inteligente para essa turma usando a caixa de seleção na parte superior do painel.
As alteraƧƵes feitas aqui serĆ£o aplicadas na próxima vez. UFT Aprende um objeto dessa classe ā as entradas jĆ” salvas no Repositório de Objetos mantĆŖm sua descrição original atĆ© que o objeto seja registrado novamente ou atualizado manualmente.
Usando o Object Spy para inspecionar propriedades
Antes de editar a lista de itens obrigatórios ou auxiliares, a maioria dos testadores verifica como as propriedades de um objeto realmente se parecem com... EspiĆ£o de objetosAo apontar o cursor de inspeção para qualquer controle no aplicativo em teste, sĆ£o listadas as propriedades do objeto de teste e as propriedades de tempo de execução lado a lado, juntamente com os mĆ©todos. UFT Pode-se recorrer a ela ā Ćŗtil quando uma propriedade obrigatória muda constantemente entre as versƵes e precisa ser substituĆda por uma mais estĆ”vel.
Identificadores ordinais: Ćndice, Localização e Hora de Criação
Ćs vezes, mesmo com todas as propriedades obrigatórias e auxiliares, dois ou mais objetos ainda parecem idĆŖnticos ā trĆŖs caixas de seleção com o mesmo nome, classe e rótulo, por exemplo. Ć exatamente para essa situação que existe o recurso `add_property`. UFT recorre a um identificador ordinal, um valor de backup que classifica objetos idĆŖnticos pela sua posição em vez de suas propriedades.
| Identificador Ordinal | Propriedade | Ordem atribuĆda | Aplica-se a |
|---|---|---|---|
| Ćndice | Ćndice | Ordem em que o objeto aparece no código-fonte subjacente, comeƧando em 0. | Qualquer classe de objeto |
| Localização: | Localização: | Posição na tela de cima para baixo e, em seguida, da esquerda para a direita, começando em 0. | Qualquer classe de objeto |
| Tempo de Criação | CreationTime | A ordem em que a janela do navegador foi aberta, começando em 0. | Somente objetos do navegador |
UFT O método `Index` só aprende um identificador ordinal quando as propriedades obrigatórias e auxiliares realmente não conseguem separar dois objetos, porque o valor é relativo e pode mudar se o layout da pÔgina for alterado, mesmo que o objeto em si não tenha mudado. O trecho de código VBScript abaixo usa `Index` para clicar no segundo de dois links com o mesmo nome.
Dim objBrowser, objPage Set objBrowser = Browser("title:=Guru99 Bank") Set objPage = objBrowser.Page("title:=Guru99 Bank") ' Index:=1 clicks the second Link named "Manage Order" (index starts at 0) objPage.Link("name:=Manage Order", "index:=1").Click
Os valores de Ćndice e localização sĆ£o especĆficos da classe de objeto nomeada na declaração, portanto Ćndice:=3 Em um WebEdit, a busca ocorre apenas entre objetos WebEdit, enquanto o mesmo valor em um WebElement genĆ©rico contabiliza todos os objetos da pĆ”gina, independentemente do tipo.
Onde a identificação inteligente se encaixa
Identificação de objetos em UFT nĆ£o se limita Ć descrição aprendida. Quando nĆ£o Ć© possĆvel encontrar uma correspondĆŖncia Ćŗnica, UFT O processo Ć© executado em uma ordem fixa: primeiro verifica as propriedades obrigatórias e auxiliares aprendidas, depois qualquer identificador de relação visual e, por fim, Identificação Inteligente se esse mecanismo estiver habilitado para a classe, e somente como Ćŗltimo recurso um identificador ordinal.
A Identificação Inteligente se posiciona propositalmente entre a descrição aprendida e o identificador ordinal. Ela reconstrói uma lista de candidatos usando as propriedades principais de uma classe e a refina com propriedades opcionais, de modo que muitas vezes consegue recuperar um objeto cuja descrição aprendida falhou ā um botĆ£o renomeado, por exemplo ā sem nunca precisar acessar o Repositório de Objetos. Como essa etapa extra de busca consome tempo, a maioria das equipes a habilita para classes com identificação frĆ”gil e utiliza identificadores ordinais apenas quando a posição Ć© realmente o Ćŗnico diferencial restante, como em um conjunto de botƵes de opção sem rótulo.


