Refactor click tree logic and add unit tests for functionality#1907
Merged
HelenaAdrignoli merged 2 commits intorelease/v2.7.0rc1from Apr 14, 2026
Merged
Refactor click tree logic and add unit tests for functionality#1907HelenaAdrignoli merged 2 commits intorelease/v2.7.0rc1from
HelenaAdrignoli merged 2 commits intorelease/v2.7.0rc1from
Conversation
HelenaAdrignoli
approved these changes
Apr 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descrição
Correções e melhorias na função
ClickTree, identificadas a partir do relato de erro na task #CA-11721 (Ryver).Problemas Corrigidos
Erro ao usar nós com nomes idênticos no caminho da árvore
O usuário reportou um erro ao utilizar dois segmentos iguais no parâmetro da função:
A causa era o filtro de hierarquia na seleção dos nós da árvore, que só era aplicado quando
self.webapp_shadowroot()retornavaFalse. Como atualmente essa função sempre retornaTrue, o filtro nunca era executado, causando falha na navegação de nós com nomes repetidos.Condição incorreta no loop de
right_clickA condição de saída do
whileque aguarda a abertura do menu de contexto estava invertida. O loop continuava enquanto o z-index do novo elemento fosse menor que o anterior, quando o comportamento esperado é o oposto — o popup aberto pelo clique direito possui z-index maior que os demais elementos.Além disso, como a condição nunca era satisfeita durante a execução normal, o loop sempre aguardava até o timeout completo (
config.timeout / 3) antes de prosseguir. Considerando que o timeout padrão do SmartTest é de 360 segundos, isso representava uma espera desnecessária de aproximadamente 120 segundos a cada chamada deClickTreecomright_click=True.Em alguns cenários, o popup também pode não ser o elemento de maior z-index, o que tornava a condição de saída ainda mais insuficiente.
Alterações Realizadas
non-shadow root, que nunca eram executadoswhileno fluxo deright_click(<=→>=)check_popup()para encerrar o loop quando o popup já estiver visível na tela, independentemente do z-indexClickTreeImpacto no Tempo de Execução
Com a correção da condição do
right_click, o loop agora encerra assim que o menu de contexto é detectado, eliminando a espera desnecessária pelo timeout completo (config.timeout / 3 ≈ 87s). Isso representa uma economia significativa de tempo em qualquer suite que utilizeClickTreecomright_click=True.Rotinas Testadas
PMSA130CNTA240CTBA161PCOXPNJTestes Unitários
Foram criados testes unitários para a função
ClickTree, sendo este o primeiro método do TIR a contar com cobertura de testes unitários. A iniciativa tem como objetivo garantir que futuras alterações no código sejam validadas automaticamente, permitindo a identificação de regressões antes que cheguem ao ambiente de execução.Essa abordagem serve de base para que os demais métodos do TIR também passem a ter testes unitários ao longo do tempo.
Comportamento Esperado Após o Fix
ClickTreecom nós de mesmo nome no caminho resolve corretamente a hierarquia.right_clickencerra assim que qualquer sinal de sucesso for detectado: aumento de z-index ou presença do popup na tela.