Ich versuche einen Test zu schreiben. Es gibt eine Seite mit einem Element und einer Lösch-Schaltfläche, um dieses Element zu löschen. Wenn es manuell gemacht wird, funktioniert es wie erwartet.Capybara, Sweet-Alert, click_button scheint zu funktionieren, löst aber keine Aktion aus
Derzeit sieht der Test wie folgt aus:
visit "/argumentation#!/overview"
expect(page).to have_content("Philosophie")
save_screenshot
click_button "Delete"
save_screenshot
click_button "Yes, delete it!"
save_screenshot
sleep 5
save_screenshot
expect(page).not_to have_content("Philosophie")
(Bilder von den Screenshots sind unten).
Um sicherzustellen, dass click_button "Yes, delete it!"
ist eigentlich die gleiche Schaltfläche wie im Popup angezeigt, fügte ich click_button "Yes, delete it!"
vor der click_button "Delete"
-Aktion. Dies würde passieren:
Capybara::ElementNotFound:
Unable to find button "Yes, delete it!"
Weiß jemand, warum der Test fehlschlägt?
In anderen Stackoverflow-Fragen, fragte einige über die Konfiguration in rails_helper.rb, hier ist mein:
Capybara.javascript_driver = :poltergeist
Capybara.default_driver = :poltergeist
haben Sie versucht mit 'page.driver.browser.switch_to.alert.accept'? – fabersky
@fabersky Ich erhalte diese Störung: Ausfall/Fehler: page.driver.browser.switch_to.alert.accept NoMethodError: nicht definierte Methode 'switch_to‘ für # Meinten Sie ? switch_to_frame –
Metaphysiker
Es ist kein Systemmodal, also wird 'switch_to.alert' nicht funktionieren. Ziehen Sie auch 'Session # accept_alert' gegenüber treiberspezifischen Methoden vor, wenn es sich um ein Systemmodal handelt. –