Comment effectuer des glisser-déposer à l'aide de sélénium webdriver lors de la cible et de l'élément de destination sont dans des cadres différents?
J'ai à faire glisser une image et la placer dans un CQ5 composant. L'image et les composants sont dans des cadres différents.
Voici le code qui ne fonctionne pas comme webelement destination
n'a pas pu être trouvé lors de la cible du cadre actif.
new Actions(driver).dragAndDrop(target, destination).perform();
J'ai aussi essayé de changer de frame entre action comme:
Actions builder = new Actions(driver);
Actions action = builder.clickAndHold(target);
driver.switchTo().frame("newFrame"); //switching frames
builder.moveToElement(destination);
builder.release(destination);
builder.build();
action.perform();
C'est ne fonctionne pas non plus. Ensuite, j'ai essayé de déplacer l'image par décalage
new Actions(driver).dragAndDropBy(target, x, y).perform(); //x and y
Ce déplacé de l'image, mais le composant ne prend pas en compte, probablement parce que l'action était trop rapide. Est-il possible que de telles faites glisser-déposer peut être fait?
Merci d'avance.
Ne va pas à l'ajouter comme une réponse comme ça ne résout pas que vous êtes le problème, mais j'ai eu le même problème en essayant d'obtenir le Sélénium travailler au sein de CQ. J'ai trouvé que, plutôt que d'essayer d'utiliser le drag & drop, il y a des moments dans la CQ que vous pouvez au lieu de double-clic. Par exemple lors de l'ajout d'un composant, en double-cliquant sur le parsys vous amènera à la liste des composants que vous pouvez ajouter (dans la même image). Le choix d'un composant ici vous amènera directement à la boîte de dialogue d'édition pour cette nouvelle composante. Pouvez faire de même pour le Contenu Finder peut-être?
OriginalL'auteur 9ikhan | 2012-08-10
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de le casser en deux parties.
OriginalL'auteur adam goucher
Il semble qu'il y ait quelques problèmes avec le sélénium /webdriver glisser-déposer. J'ai soumis un défaut avec le sélénium gens, http://code.google.com/p/selenium/issues/detail?id=4420
Nous espérons obtenir certaines réponses positives.
OriginalL'auteur Prashant Shukla
J'ai eu le même prb que toi. Je ne peux pas darg et déposer les deux éléments d'un cadre à un autre.
le ansers dessus sont corrects, mais à partir de sélénium 3 cette solution ne fonctionne pas plus.
Le workarrown est de déplacer l'élément source (après clickAndHol) à la position 0,0 et puis pour le déplacer vers la deuxième image. par exemple 150,150.
espère que je vous aide aussi.
OriginalL'auteur Ben Aissa Moez
Est ce que quelqu'un a trouvé une solution pour Adobe CQ 5.5?
Je suis confronté au même problème avec adobe CQ 5.5, j'ai essayé de plusieurs façons différentes, je peux obtenir de l'image à la zone de largage, mais une fois que c'est là l'image semble toujours pas active et en le déposant a pas de sens. J'ai compris que c'est parce que le pointeur de la souris ne se déplace pas avec l'image, c'est pourquoi déposer un non-sens. J'ai ajouté le code pour déplacer la souris vers la zone de dépôt, mais il semble que les commandes de travail est séparé donc pas encore en mesure de déposer, s'il vous plaît toute suggestion.
Voici mon code (qui ne travaille pas à la CQ 5.5)
//Passer à la Fenêtre pour être en mesure de sélectionner l'image
//Ensuite, passer à iframe
//Robot de pointer la souris pour drop zone
//Trouver un emplacement pour droppable élément
//Déplacer dragble à droppable
OriginalL'auteur Slav Kurochkin
Ci-dessus posté solutions n'ont pas fonctionné pour moi sous CQ 5.5 et CQ 5.6
Cela fonctionne:
Cette méthode permet de placement des composants:
OriginalL'auteur JNS
Le code ci-dessous fonctionne, espérons que cela aide:
OriginalL'auteur Waylon Zhang
De faire un glisser-déposer à partir d'une iframe à l'autre, vous avez besoin de faire référence à tous vos actes dans l'iframe de la source web de l'élément. Pour ce faire, vous devez obtenir le parent de la cible iframe et de manipuler de l'utiliser, c'est à dire CqFrameParent qui est un div qui a pour cible iframe.
Depuis la source et la cible appartient à une seule iframe, pas besoin de faire la commutation des iframes pour ce faire.
OriginalL'auteur JV_CQ
Créer un objet de la classe d'actions
Trouver xpath de l'élément dont nous avons besoin pour faire glisser
Trouver l'élément xpath où nous avons besoin de déposer
Faites glisser l'élément à destination
À utiliser le glisser-déposer dans CQ utilisation double-cliquez sur la fonction de premier et de mettre n'importe quel composant puis essayez la méthode ci-dessus.
OriginalL'auteur Tejas Vinerkar
Ce code fonctionne sur CQ 5.5
OriginalL'auteur theawesome
OriginalL'auteur Anand Somani
Selenium webdriver est de fournir fonction glisser-déposer. Essayez cette
OriginalL'auteur