Ich habe Capybara/poltergeist/phantomjs eingerichtet, um einige UI-Tests durchzuführen. Mein erstes Experiment ist folgendes:Sollte Capybara/poltergeist/phantomjs meinen JS während der Tests laufen lassen?
it 'can like a photo', :js => true do
visit root_path(as: 1)
page.first("img.lazy").trigger('click')
save_screenshot('/Users/martinhinge/Downloads/file.png')
within("#control-sidebar-tab-photo") do
page.find("#like").click
expect("#control-sidebar-tab-photo #like").to have_css(".btn-success")
end
end
ich einen Screenshot vor
page.first("img.lazy").trigger('click')
und alles geladen ist fein vom Server.
die
page.first("img.lazy").trigger('click')
einige Javascript auslösen soll einen Seitenstreifen zu öffnen (funktioniert in meiner App in Ordnung). Aber wenn ich es laufe passiert nichts.
Sollten Phantomjs die js ausführen?
--o EDIT o--
ich den Klick-Trigger geändert haben:
first("img.lazy", minimum: 1).click
, wenn ich das tue ich:
Capybara :: Poltergeist :: MouseEventFailed : Ein Klick auf Koordinaten [83, 227] fehlgeschlagen. Poltergeist hat ein anderes Element mit CSS-Selektor entdeckt 'html body.fixed.index.photos.sidebar-collapse.sidebar-mini.skin-black div.wrapper div.content-wrapper abschnitt.inhalt div.row div # photogrid div. col-lg-12.col-sm-12 div.box.box-massiv div.box-body.infinite-container div.photo-widget div.photo-widget-content div.photo-widget-header 'at Diese Position. Es überlappt möglicherweise das Element, mit dem Sie interagieren möchten. Wenn Sie nicht über überlappende Elemente kümmern, versuchen Sie node.trigger ('klicken').
habe ich versucht, es an sich verändernde:
first(".photo-widget-header", minimum: 1).click
Jetzt oben bekomme ich den Fehler nicht, aber die JS ausgelöst werden nicht. Der Grund, warum ich weiß, dass die JS nicht ausgelöst wird, ist, dass das Element '#like' nicht gefunden wird.
haben Sie versucht 'page.first (" img.lazy "). Klicken Sie auf"? " – siegy22
Ich habe ... Ich bekomme eine Fehlermeldung, dass es überlappende Elemente gibt und dass ich Trigger verwenden soll. Ich habe versucht, den Trigger-Befehl im Debug-Modus ausgeführt und es ist erfolgreich – martin