[Duvida] - Gente é possivel pegar um valor que é retornado na tela usando o Capybara?

Topic created · 12 Posts · 207 Visualizações
  • Obrigada Leaonardo

    O botão que eu clico é esse
    <input type=“button” id=“registrar_cliente” onclick=“return prossegue_form(‘form’);” value=“Registrar Cliente”>

    Depois que eu clico aparece esse href
    <a href=“cliente_view.php?encoid=201797102”>239693369</a>

    o que eu preciso é o 239693369

    Desde de ja obrigada

  • esse link aparece em algum div especifica? como ela é antes desse link aparecer? ela tem identificação?
    Você pode fazer polling dessa div até pegar o ID que vc quer.

  • Ele esta dentro dessa div

    <div style=“padding: 20px;” align=“left”>
    <h1>E-AWB</h1>
    <link rel=“stylesheet” href="…/js/calendario/dhtmlgoodies_calendar.css" media=“screen”>
    <script type=“text/javascript” src="…/js/calendario/dhtmlgoodies_calendar.js"></script>
    <script language=“javaScript” src="…/js/formata_valor.js" type=“text/javascript”></script>
    <script language=“javaScript” src="…/js/ajax_extenso.js" type=“text/javascript”></script>
    <script language=“javascript” src="…/js/jquery.pack.js"></script>
    <script src="…/js/forms.js" language=“javascript”></script>

    <p><b>eAWB gerada:</b> <a href=“cliente_view.php?encoid=201797109”>239693377</a><br></p>
    <form action="/oper/cliente_reg.php" method=“post” name=“form” id=“form”>
    <table width=“800” border=“0” cellspacing=“1” cellpadding=“5” id=“tabela” align=“center” style=“background-color: #F5F1F1;”>

    não sei se é possivel pegar só com isso…

  • Seria bom colocar algum span com identificação nessa linha <p><b>eAWB gerada:</b> <a href=“cliente_view.php?encoid=201797109”>239693377</a><br></p> pq pelo que to vendo… parece que essa aplicação não segue padrões web… ou seja… eu não consigo te sugerir um XPATH que não vá conflitar com outros elementos.

    Pq estou falando isso?
    Pq tem includes de javascript fora do header / footer da pagina (eu ainda vejo pessoas colocando inlcudes de JS no final da pagina) ou seja… não sei o que tem em cima…

    Se você tiver acesso a quem desenvolveu essa aplicação, peça para colocarem um name ou id nessa parte do código que eu te falei… dai fica mega facil pegar esse conteudo.

  • cristina, se não for possível colocar algo mais amigável, tenta o pooling com esse xpath

    “.//p[//b[text()=‘eAWB gerada:’]]/a[contains(@href,‘cliente_view.php’)]”

  • @jpmusico esse xpath é tão fragil que se vc piscar ele para de funcionar…rs se for assim, da pra simplificar -> //p[contains(text(),'eAWB gerada:')]/a

  • @Leonardo-Galani é complicado hahahah com meia piscada nossos 2 exemplos param de funcionar, mas eu adoro xpath

  • Obrigada gente, vou tentar via xpath mas vou pedir para os programadores colocarem algum identificador nesse retorno!

  • Gente obrigada pelo retorno consegui pegar o valor usando jquery

    page.evaluate_script("$(’#form’).prev(‘p’).find(‘a’).html()")

  • Jesuis 🙂