Pergunta

Eu estou tentando testar um diálogo de confirmação JS com pepino on Rails. Eu tenho um manipulador de eventos window.onbeforeunload que irá pedir-lhe com um diálogo de confirmação se você tentar navegar para fora da página, mas não tenho idéia de como testá-lo, Alguém tem uma idéia de como isso pode ser feito?

Foi útil?

Solução

Existem várias funções de selênio você pode usar para alertas / confirma captura. Eles não são directamente disponível com a implementação de selênio webrat, mas quando se utiliza config.mode = :selenium de webrat eles podem ser usados ??da seguinte forma:

Then /^I should see a JS alert$/ do
    selenium.is_alert_present.should be_true
end

# or

Then /^I should see a "Are you sure?" JS confirm dialog$/ do
    selenium.get_alert.should eql("Are you sure?")
end

# you can also click the OK/Cancel buttons on confirm boxes with

selenium.chooseOkOnNextConfirmation();
#and
selenium.chooseCancelOnNextConfirmation();

Há provavelmente não são os maiores testes, mas lhe dá uma idéia. Internamente selênio substitui o alert () e as funções de JS confirm () para que ele possa captura essas informações.

Você pode encontrar mais documentos sobre a selênio faq ou em seu servidor gem

Outras dicas

Veja as definições de métodos em http: // selênio-cliente. rubyforge.org/classes/Selenium/Client/Idiomatic.html

Você pode invocá-los com o objeto auxiliar selênio em suas definições passo pepino -. Por exemplo,

Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|    
  selenium.confirmation.should eql(statement)                               
end

Você pode usar Webrat ou Selenium com pepino para testar isto.

Meu palpite é que você quer navegador simulado ou teste do navegador Automated,

Você pode usar Webrat ou Webrat :: selênio ou simplesmente Selenium com pepino em tais casos.

Eu testei isso usando Selênio e pepino antes, mas não consigo encontrar o código, vai editar o post que se eu fizer.

HTH

Eu recomendaria usar screw-unidade para testar o comportamento javascript em uma página. Você também pode dar uma olhada em plug-in blue-cume da Relevância que incorpora screw-unidade e adiciona suporte para linha de comando e em testes de navegador js. Você pode encontrá-lo no github sob relevância / azul-cume. (Eu não tenho o representante ainda para postar mais de um link: (

Seria um exercício interessante para uso parafuso unidade e / ou azul-cume para conduzir testes de pepino, e, provavelmente, não é tão difícil de retirar.

Esta essência tem etapas para testar um diálogo de confirmação JS no Rails 2 e 3 com qualquer driver Capivara, deve ser fácil de adaptar-se a uma caixa de alerta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top