Ich hatte 50/50 Erfolg mit Justin Ko's Antwort. Die eine, die hatte Code wie folgt gearbeitet:
link_to "Reset", reset_pre_shot_description_mental_game_path(@mental_game), data: {confirm: 'Are you sure?'}, class: "small_button round", id: "reset_pre-shot"
und diesen Test:
page.accept_confirm do
click_link "Reset"
end
Der Test, der fehlschlägt (aber hat Code im Browser funktioniert) hat Code
link_to 'Delete', micropost, data: {confirm: 'Are you sure?'}, method: :delete
und Test
page.accept_confirm do
click_link "Delete"
end
Der Fehler ure Nachricht war
Failure/Error: page.accept_confirm do
Capybara::ModalNotFound:
Timed out waiting for modal dialog
ich die method: :delete
in den :data
Hash bewegen versucht, aber das hat nicht geholfen.
Es stellt sich heraus, dass die deprecation Warnung gefunden tatsächlich zwei Fehler im Code, wie ich die Schienen 3 Syntax bestätigen Verwendung wurde also nicht die :data
Hash verwenden, so wurde mein Code gebrochen, aber die page.driver.accept_js_confirms!
Test wurde Kommissionierung es nicht nach oben . Das hat sich also gelohnt.
page.driver.browser.accept_confirm? – coorasse
Versuchte das selbst, da ich das gleiche Problem habe. Es funktioniert nicht. Es scheint accept_modal (: confirm, options, & blk) zu erkennen, gibt aber einen Argumentfehler. Ich suche immer noch selbst nach der Antwort. – Art