Dúvida Protractor

Oi,
Estou iniciando testes com protractor e estou com o seguinte problema:

  • Dois testes quando executados sozinhos funcionam normalmente.
  • Estes 2 testes executados em conjunto gera o seguinte erro no segundo teste (indiferente a ordem): Failed: This driver instance does not have a valid session ID (did you call WebDriver.quit()?) and may no longer be used.

Alguma sugestão de como resolver?

Cris, é exatamente o que o erro tá dizendo, a instância do WebDriver utilizada pelo segundo teste está inválida. Só vendo o código pra descobrir o que está errado. Coloca em um gist ou põe um print, pra que eu ou alguma outra pessoa consiga te ajudar.

1_1501010512178_Captura de Tela 2017-07-25 às 16.20.10.png

0_1501010802034_Captura de Tela 2017-07-25 às 16.26.10.png

0_1501010512178_Captura de Tela 2017-07-25 às 16.19.59.png

pq vc faz o restart do browser para cada teste? Acho que essa parada do Protractor não funciona muito bem.

Eu preferi usar o restart porque toda tela do projeto possui o dialog de confirmação pra sair da tela.
Cada vez que ia executar o próximo teste travava no modal, e eu achei que ia dar mais trabalho resolver isso.

Como o Walmyr falou, é melhor não fazer restart entre cada teste. Tratar um modal não é complicado, e se é algo que acontece no final de todos os testes, vc pode usar um hook pra fechar o modal após cada teste.

@Walmyr, já to longe do JS tem um bom tempo, dá pra fazer um hook global pra ela conseguir tratar esse modal após cada teste, não? Digo, em vez de ter que colocar um afterEach pra cada script.

Exato, é muito melhor tratar de tal modal, em um afterEach por exemplo, do que reiniciar o browser para cada teste, além disso, caso o restart do browser funcionasse, tornaria os testes mais lentos, o que também não é bom.
Cris, se precisar de ajuda para fechar o modal depois de cada teste dá um toque.

@walmyr Oi, vou fazer as alterações. Se puderes passar um exemplo pra fechar o modal vai me ajudar.

@Cris-Martens, seria algo como o seguinte:

beforeEach(() => {
element(by.id(“modal-close-button”)).click();
});

Só mais pergunta:
consigo selecionar quais its o beforeEach será aplicado?

Você pode criar diferentes níveis de describes. Algo assim:

https://s3-us-west-1.amazonaws.com/walmyr/Screen+Shot+2017-07-26+at+22.41.10.png

Veja que describe “foo” tem um teste sem beforeEach
E os it’s dentro do describe “baz” utilizarão o beforeEach.

Hmm… isso vai resolver meus problemas.
Obrigada.
0/

de nada!

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.