Alternativas para manipular um elemento específico dentro de vários outros muito parecidos na tela

Topic created · 10 Posts · 177 Visualizações
  • Pessoal, queria saber se vocês têm alguma ideia para manipular um elemento específico dentro de vários outros elementos parecidos sem usar index, ou seja, usando o find.elements e buscar o elemento que esteja dentro de alguma condição, como visibled, enabled, etc. Estou usando indíces atualmente mas para manutenção é horrível, são MUITOS elementos!

    Ps: Estou usando Java com PageObjects.

  • @Felipe-Luz vou subentender que esse elemento não tem id, nem uma class única na página, caso esteja errado me fale.

    Vamos para 2 alternativas:

    • você capturar esse elemento usando xpath
    • caso esse elemento tenha um conjunto de classes que, juntos, se tornam único na página, você pode usar uma expressão de xpath(se não conhecer como funciona eu posso te ajudar). Essa opção é ligeiramente melhor do que usar xpath puro.
  • @Thiago-Grespi Sim, pode ser por relative xpath, absolute xpath, Css ou id. Digamos que tenha id mesmo, a questão não é como se pega ele, mas como tratar o elemento conforme alguma condição que eu queira. Sacou?

  • @Felipe-Luz ah sim, acho que estou começando a entender. Não sou um expert mas gostaria de entender mais e se possível ajudar.

    Neste caso vc está com problemas na manutenção do código, pois são muitos elementos para manipular baseado em condicionais, certo?

    Está usando o modelo page objects? pensou em ter uma classe que tem como responsabilidade apenas mapeamento de elemento de uma page?

  • Minha sugestão é adicionar atributos específicos para testabilidade nos elementos em questão. Algo como data-test ou data-test-id.

  • Pelo que entendi tu quer pegar os elementos que aparecem em “duplicidade” e tentar tratar para usar eles por alguma propriedade única…Seria isso? Então, isso ainda pode te gerar a mesma manutenção. Se o que falei tem sentido, talvez a aplicação que esteja fazendo automação ela não seja “testável” e aplicações assim tendem a gerar manutenção mesmo. Se o projeto que está, voce tem abertura para conversar com os devs e “ajustar as coisas” pode seguir o conselho do walmyr e tentar colocar atributos de testes (ou identificadores de teste) para um auxilio. Caso o projeto seja “like agile, but not” recomendo não encanar com algo assim. O ganho que vai ter não vai ser tanto assim. Fora que dependendo da estrutura de testes que tem vai precisar de refatoração e demanda tempo…
    Agora se não é isso, esquece esse textão e segue o baile…auehaaehuae

  • @Felipe-Luz se a situação for essa que o @Ramses-Saccol-de-Almeida falou em relação a duplicidade de elementos… já me deparei com situações como essas, infelizmente não tem como contornar na hora de desenvolver o código do teste… nesse caso o que deu certo foi o que o @Walmyr falou… pedir para o desenvs incluir uns “id” ou qualquer tag que facilite a identificação do elemento.

  • @Ramses-Saccol-de-Almeida É exatamente isso. A solução temporária que fiz foi criar o bendito método que lê apenas o elemento que está visível, e eu consigo manipulá-lo. Obrigado, você e Walmyr foram de grande ajuda!

  • @Miécio-Costa Farei isso, muito obrigado!

  • @Thiago-Grespi Opa, amigo! Só pude responder agora. Sim, estou usando Page Objects! Encontrei uma solução paliativa para não tratar os índices utilizando um método que pega o único elemento que esteja visível. Mas a melhor solução vai ter que ser falar com os dev para colocar atributos únicos mesmo. Muito obrigado pela sua ajuda!