Rspec + Capybara : Comment cliquez sur boîte d'alerte

Je suis passé par le poste de capybara + clic sur la zone d'alerte, mais rien ne semble fonctionner. Voici mon scénario:

Scénario: Lorsque je clique sur le bouton mise à jour, Une boîte d'alerte s'affiche qui contient "OK" et "Annuler". Cliquez sur "Ok" puis sur nouveau formulaire s'affiche.

  1. Je suis en train d'écrire des specs de requête c'est à dire à l'aide de rspec et le capybara. Principal problème est de cliquer sur la zone d'alerte: voici mon code:

     context "update" do
       before(:all) do
         Capybara.current_driver = :selenium
       end
       after(:all) do
         Capybara.use_default_driver
       end
    
       it "update user to trainer" do
         click_button('Search')
         sleep 3 
         page.evaluate_script('data-confirm = function() { return true; }')
         page.click('OK')      
         click_button('Upgrade')
       end
     end

    Mais de l'exécution du script me donne l'erreur suivante:

    Panne/Erreur: page.evaluate_script('data-confirm = function() { return true; }') Sélénium::WebDriver::Erreur::UnexpectedJavascriptError: invalid attribution de gauche # ./spec/demandes/user_upgrades_spec.rb:30

  2. Pour le deuxième exemple, c'est à dire

    page.le pilote.le navigateur.switch_to.l'alerte.accepter

    Mon code :

     context "update" do
       before(:all) do
         Capybara.current_driver = :selenium
       end
       after(:all) do
         Capybara.use_default_driver
       end
       it "update user to trainer" do
         click_button('Search')
         sleep 3   
         click_button('Upgrade') 
         page.driver.browser.switch_to.alert.accept
       end
     end 

J'obtiens l'erreur:

Panne/Erreur: page.le pilote.le navigateur.switch_to.l'alerte.accepter le Sélénium::WebDriver::Erreur::UnhandledError:

S'il vous plaît laissez-moi savoir comment aller plus loin

  • Vous ne pouvez pas le nom d'une variable JavaScript avec des tirets. data-confirm = function ... est illégal. Il ressemble à (foo - bar) = function() { ... }. C'est le left-hand side # ...user_upgrades_spec.rb:30 erreur. Nom de vos variables JavaScript avec camelCase.
  • stackoverflow.com/questions/27384040/...