2017-03-17 3 views
1

ich eine Taste mit Javascript a erzeugt haben:Rspec/Capybara Klicken auf die Schaltfläche, die generiert wurde mit Hilfe von Javascript

<script> 
    var button = document.createElement("button"); 
    button.innerHTML = "Do Something"; 

    var body = document.getElementsByTagName("body")[0]; 
    body.appendChild(button);  
</script> 

aber scheinen nicht in der Lage zu sein, diese Taste zB mit Capybara zu finden:

find_button 'Do Something' or click_button 'Do Something' 

produziert Unable to find button "Do Something"

jemand über etwas gekommen ist, wie dies vor?

+1

Verwenden Sie einen JavaScript-Treiber wie Selen? Wenn Sie JS nicht aktiviert haben, können nur Capybara und Rspec nicht damit umgehen. –

+1

James Milani ist wahrscheinlich richtig über das Problem hier - siehe https://github.com/teamcapybara/capybara#selecting-the-driver. Wenn Sie tatsächlich einen JS-fähigen Treiber verwenden, dann sehen Sie sich die Ausgabe von 'page.html' an und sehen, wie der HTML-Code tatsächlich aussieht. –

+1

Ich konnte es lösen, indem ich den Webkit-Treiber über den Link von James hinzufügte und js: true for my spezifisches Szenario. Danke Leute. –

Antwort

1

zu Gemfile hinzugefügt und installieren bündeln:

gem 'capybara-webkit' 

In rails_helper:

Capybara.javascript_driver = :webkit 

Aktiviert js auf spezifische rspec Szenario zB:

scenario "dynamic button generated", js: true do 
... 
end 
Verwandte Themen