Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida quanto ao método getPageSource()

Boa noite. Estou tentando seguir o exemplo do vídeo para fazer o primeiro exemplo do curso, mas o método getPageSource() retorna um resultado diferente do apresentado no Browser.

Resultado obtido utilizando getPageSource():

<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Caelum Ensino e Inovação</title>
<script type="text/javascript" src="/javascripts/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/css/theme.css">
<link rel="stylesheet" type="text/css" href="/css/style.css">
<script>
   var StyleFile = "theme1.css";
   document.writeln('<link rel="stylesheet" type="text/css" href="/css/' + StyleFile + '">');
</script><link rel="stylesheet" type="text/css" href="/css/theme1.css">

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/ie-sucks.css" />
<![endif]-->
</head>

<body>
    <div id="container">
        <div id="header">
            <h2>Sistema de Leilões</h2>
    <div id="topmenu">
                <ul>
                    <li class="current"><a href="/;jsessionid=rcp8gv62o9pr">Home</a></li>
                    <li><a href="/usuarios;jsessionid=rcp8gv62o9pr">Usuários</a></li>
                    <li><a href="/leiloes;jsessionid=rcp8gv62o9pr">Leilões</a></li>
              </ul>
          </div>
      </div>
        <div id="wrapper">
            <div id="content">





<form action="/usuarios" method="post">



    <div class="field">
        Nome:<br>
        <input name="usuario.nome" value="" type="text">
    </div>

    <div class="field">
        E-mail:<br>
        <input name="usuario.email" value="" type="text">
    </div>


<div class="actions">
    <button type="submit" id="btnSalvar">Salvar!</button>
    </div>
</form>

<a href="/usuarios">Voltar</a>



            </div>
            <div id="sidebar">
                  <ul>
                    <li><h3><a href="#" class="house">Caelum Online</a></h3>
                        <ul>
                            <li><a href="http://www.caelum.com.br/online" class="report">Veja nossos cursos!</a></li>
                        </ul>
                    </li>
                </ul>
          </div>
      </div>
        <div id="footer">
        <div id="credits">
           Template feito por <a href="http://www.bloganje.com">Bloganje</a>
        </div>

        </div>
</div>

</body></html>

Código obtido por meio do Browser:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Caelum Ensino e Inovação</title>
<script type="text/javascript" src="/javascripts/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/css/theme.css" />
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<script>
   var StyleFile = "theme1.css";
   document.writeln('<link rel="stylesheet" type="text/css" href="/css/' + StyleFile + '">');
</script>
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="css/ie-sucks.css" />
<![endif]-->
</head>

<body>
    <div id="container">
        <div id="header">
            <h2>Sistema de Leilões</h2>
    <div id="topmenu">
                <ul>
                    <li class="current"><a href="/">Home</a></li>
                    <li><a href="/usuarios">Usuários</a></li>
                    <li><a href="/leiloes">Leilões</a></li>
              </ul>
          </div>
      </div>
        <div id="wrapper">
            <div id="content">


    <h1>Todos os Usuários</h1>

    <table>
        <tr>
            <th>Nome</th>
            <th>E-mail</th>
            <th></th>
        </tr>


            <tr>
                <td>Adriano Xavier</td>
                <td>axavier@empresa.com.br</td>
                <td>
                <a href="/usuarios/19">exibir</a> | 
                <a href="/usuarios/19/edit">editar</a>
                    <form action="/usuarios/19" method="post">
                        <input type="hidden" name="_method" value="delete"/>
                        <button type="submit" onclick="return confirm('Tem certeza?')">excluir</button>
                    </form>
                </td>
            </tr>

    </table>

    <br />
    <a href="/usuarios/new">Novo Usuário</a> 


            </div>
            <div id="sidebar">
                  <ul>
                    <li><h3><a href="#" class="house">Caelum Online</a></h3>
                        <ul>
                            <li><a href="http://www.caelum.com.br/online" class="report">Veja nossos cursos!</a></li>
                        </ul>
                    </li>
                </ul>
          </div>
      </div>
        <div id="footer">
        <div id="credits">
           Template feito por <a href="http://www.bloganje.com">Bloganje</a>
        </div>

        </div>
</div>
</body>
</html>

Como é possível observar, o código obtido por meio do método getPageSource() não contém o nome do Usuário e nem o Email digitados. Devido a isso, o método assertTrue() sempre retorna falso e o teste não passa.

Como contornar esse problema?

3 respostas

Oi Giovanni,

Eu acho que o problema é que vc ta acessando urls diferentes... A que é do browser lista os usuários enquanto que a do teste ta exibindo o formulário.

Oi Alberto.

Então, é justamente o que está acontecendo. Após inserir o funcionario e o email, ao utilizar o getSourcePage() ele continua pegando a página anterior.

Houve alguma mudança com relação a esse método no Selenium 3?

solução!

Consegui resolver o problema e seguir na atividade utilizando o driver do Chrome.