Preciso clicar usando xpath

Topic created · 6 Posts · 126 Visualizações
  • Trabalho com cucumber,capybara e ruby. Preciso clicar num botão que nao tem ID e nenhuma classe funcionou.
    O cara do front é muito inteligente e me passou o xpath =

    //*[@id="sistema"]/div[5]/div[2]/div

    Mas eu nao to sabendo fazer clicar nele. Por favor, me respondam com simplicidade, sou só uma estagiária kkk Tentei das suas formas:

    find(:xpath, '*[@id="sistema"]/div[5]/div[2]').click
    driver.find_element(:xpath, "//*[@id="sistema"]/div[5]/div[2]").click
    

    Mas nenhuma funcionou.

  • @babifernandes meu deus… ao inves do cara do front te mandar um xpath… pq ele não coloca um ID no botão? Xpaths desse jeito são os mutio frageis e qualquer nova div irá quebrar seu teste.

    Não queria fazer isso mas… Se você tem que clicar em um “BOTAO” mesmo, esse xpath ta te mandando para uma div… e mesmo que essa div tenha um botão… a ação do click no botão pode não ocorrer… ou seja… vc teria que adicionar mais uma perna nesse xpath (@id=“sistema”]/div[5]/div[2]/button ou @id=“sistema”]/div[5]/div[2]/input)

    O botão tem algum texto especifico? existe botões similares no app? vc pode usar xpath queries para achar esse “botão” … da uma olhada no método contains() nesse link aqui https://www.guru99.com/xpath-selenium.html

    Se ainda estiver com problemas… faz um copy paste do HTML da parte que inclui esse botão pra gente te ajudar melhor.

  • @babifernandes recomendo também você falar com a equipe de desenvolvimento e pedir para incluir elementos html nesse botão. Seja um id ou Name. No seu caso ficaria assim (nunca trabalhei com capybara ou ruby mas vamos lá).

    Caso for inserido um ID e esse ID tiver o nome “botao_salvar”

    find(:id, 'botao_salvar').click
    driver.find_element(:id, "botao_salvar").click
    
  • Tenta usar isso.

    click_button ‘*[@id=“sistema”]/div[5]/div[2]’

    ou

    click_button '‘name do botao’

    Depois você da uma olhada nessa live
    Youtube Video

    Fala pro time de desenvolvimento que não e bom usar xpath para realizar teste automatizado. O ideal e usar o CSS.

    A deixa sua resposta assim que resolver o problema ta bom.

  • A dica do @Leonardo-Galani é boa. Saindo um pouco do post, essa é uma boa leitura para evitar problemas futuros na automação: https://kentcdodds.com/blog/making-your-ui-tests-resilient-to-change

  • @rodolfo-farley se não é um botão de fato… não funciona.