Sto provando a scrivere un test cetriolo/capibara per riordinare alcuni elementi e quindi salvarli nuovamente. Qualche idea su come fare al meglio?Come posso testare l'interfaccia utente JQuery con Cucumber
risposta
sto usando un passo web come questo e funziona benissimo:
When /^I drag "([^"]*)" on top$/ do |name|
item = Item.find_by_name(name)
sleep 0.2
src = find("#item_id_#{item.id}")
dest = find("div.title")
src.drag_to(dest)
end
metodo drag_to non ha funzionato per me. Ma io ero in grado di provocare il primo elemento nella mia lista per essere trascinato all'ultima posizione inserendo la seguente nella mia jquery.simulate.js capibara prova selenio utilizzando:
page.execute_script %Q{
$.getScript("/javascripts/jquery.simulate.js", function(){
distance_between_elements = $('.task:nth-child(2)').offset().top - $('.task:nth-child(1)').offset().top;
height_of_elements = $('.task:nth-child(1)').height();
dy = (distance_between_elements * ($('.task').size() - 1)) + height_of_elements/2;
first = $('.task:first');
first.simulate('drag', {dx:0, dy:dy});
});
}
Ciao @Francois. Ho provato il tuo codice, ma la libreria simulate.js non funziona con elenchi ordinabili. Ho creato un esempio in cui ho incorporato il plug-in simula ma l'ho modificato in modo da rallentare i passaggi. Come vedrai, il plugin simula sta trascinando, ma ordinabile non risponde correttamente. Vai a [http://jsbin.com/efuyef/7/edit#javascript,live](http://jsbin.com/efuyef/7/edit#javascript,live) per vedere un esempio in cui le operazioni trascinabili e l'ordinabile falliscono . Anche io sto cercando di fare qualcosa di simile per Cucumber, quindi una soluzione a questo sarebbe grandiosa. Come hai fatto a far funzionare il tuo? –
ho sviluppato un plugin jQuery per risolvere questo problema, controlla jquery.simulate.drag-sortable.js che include un plugin con una suite di test ed esempi.
Spero che trovi utile! Il feedback è benvenuto
Matt
Funziona come un fascino. Grazie! – artemave
Ho aggiunto un passaggio di cetriolo di esempio che utilizza questo file per il readme del progetto. –
Per me, #drag_to
ha funzionato, tuttavia, i suoi poteri sembrano essere limitati.
Per spostare una riga della tabella UI-ordinabili giù, ho dovuto creare una tabella con tre righe, quindi eseguire questo passaggio Cucumber:
# Super-primitive step
When /^I drag the first table row down$/ do
element = find('tbody tr:nth-child(1)')
# drag_to needs to drag the element beyond the actual target to really perform
# the reordering
target = find('tbody tr:nth-child(3)')
element.drag_to target
end
Questo sarebbe scambiare la prima con la seconda fila. La mia interpretazione è che Capibara non trascina abbastanza lontano, così ho dato un obiettivo oltre il mio obiettivo reale.
Nota: ho configurato l'interfaccia utente con tolerance: 'pointer
".
- 1. Come posso testare DelayedJob con Cetriolo?
- 2. Come testare il caricamento di più file usando Cucumber/Capybara?
- 3. Come posso utilizzare Cucumber per testare la funzionalità Ricordabile di Devise?
- 4. Come testare un widget Sortable dell'interfaccia utente JQuery utilizzando Selenium?
- 5. Test di stress con Cucumber
- 6. Come posso ottenere che devise_async funzioni con Cucumber?
- 7. Testare jQuery Hover con Jasmine
- 8. Come posso emulare l'API dell'interfaccia utente Jquery?
- 9. Come posso testare l'unità GC?
- 10. Come testare il caricamento di Dropzone.js con Rails, Cucumber e Capybara?
- 11. Come posso testare STDERR con Test :: Altro?
- 12. Come posso facilmente testare l'unità con CodeIgniter?
- 13. Come posso testare una funzione con gets.chomp?
- 14. Come posso testare servlet con JUnit?
- 15. Come testare il widget del cursore dell'interfaccia utente jQuery con Selenium IDE?
- 16. Come si differenzia Cucumber da JUnit?
- 17. Come testare XMLHttpRequest con Jasmine
- 18. Come posso testare metodi void?
- 19. Come posso testare typeof (dinamico)?
- 20. Debug di jQuery Ajax in Cucumber + Capybara + PhantomJS in Rails
- 21. Come posso testare un finalizzatore?
- 22. Come posso testare l'utente corrente di authlogic in Cetriolo?
- 23. Cucumber BeforeStep
- 24. Come testare con MediatR
- 25. rails3-jquery-autocomplete: come testare con RSpec e Capybara?
- 26. Come testare il modulo es6 che importa jquery con jsdom
- 27. Come posso abilitare/disabilitare i combobox dell'interfaccia utente jQuery?
- 28. Come testare con NSUserDefaults?
- 29. Test Highcharts (libreria JS charting) con Cucumber
- 30. quale versione dell'interfaccia utente jquery può funzionare con jquery 1.3.2
Non ho potuto ottenere questa soluzione per funzionare. Qualcun altro ha successo con questo? – Francois
Uso di rspec + capibara (non di cetriolo) e non riesco neanche a farlo funzionare. trascinando gli elementi funziona (come nel metodo restituisce true) ma l'ordine sullo schermo non viene modificato (per save_and_open_screenshot) o controllando direttamente il testo. – BM5k