2017-05-15 1 views
0

J'essaie de faire glisser un élément et de le déposer sur un autre élément de la page. Mon code s'exécute sans aucune erreur. Mais la traînée ne se produit pas réellement. Il est capable de trouver les deux éléments. J'ai essayé toutes les options ci-dessous:glisser-déposer à l'aide de selenium ruby ​​capybara

driver.browser.action.drag_and_drop(fromobject.native, 
toobject.native).perform 

fromobject.drag_to toobject 

driver.browser.action.move_to(toobject.native).release.perform 

fromobject.drag_and_drop_on toobject 
+0

Avez-vous lu [this] (http://stackoverflow.com/questions/14210051/comment-automatiser-drag-drop-fonctionnalité-using-selenium-webdriver-java) Une question? –

Répondre

0

Si from_element.drag_to to_element ne fonctionne pas pour vous, alors il est probablement ne va pas être possible de le faire directement avec capybara/sélénium. La raison en est que la prise en charge du glisser-déposer dans les pilotes dépend fortement des événements que votre code recherche. Les versions actuelles de sélénium mettre en œuvre comme les événements mouse down, mouse move, mouse up alors que votre code peut rechercher drag start, drag, drag end événements, etc. De ce fait, pour le faire fonctionner, vous aurez besoin de créer des événements de synthèse en utilisant execute_script pour déclencher le comportement que vous voulez. Si vous utilisez des bibliothèques spécifiques, quelqu'un a peut-être déjà implémenté ceci correctement pour vous - par exemple, si vous utilisez des éléments de tri de l'interface utilisateur JQuery il y a https://github.com/mattheworiordan/jquery.simulate.drag-sortable.js

+0

Merci, je vais essayer, je suppose que cela devrait aider, affichera la sortie. – aruna

+0

Essayé avec un execute_script, toujours le même problème, le test s'exécute sans erreur, mais le glisser-déposer ne se produit pas. Toute autre solution serait vraiment utile – aruna

+0

@aruna Vous avez essayé quoi avec 'execute_script'? - Toute solution dépend complètement de la façon dont votre application implémente la détection du glisser-déposer, il n'y a donc pas d'autres solutions à proposer sans que vous ayez trouvé exactement ce que votre application recherche. –