2010-04-10 6 views
13

Est-ce que quelqu'un sait comment je peux faire fonctionner le ckEdtior avec Selenium. Je ne suis pas en mesure de mettre l'accent sur le champ "html edit" ou de changer la valeur du champ html.Selenium et ckEditor

Quelqu'un a-t-il de l'expérience?

Répondre

17

Juste pour compléter le anwser: Je l'ai à travailler avec: runScript("CKEDITOR.instances['InstanceName'].setData('<p>testContent</p>');") Il ne fonctionne pas avec la commande getEval.

1

Quand j'ai eu un test à faire avec les éditeurs WYSIWYG, j'ai dû créer mon propre mécanisme pour travailler dans la zone de contenu. Normalement, cela implique de définir le code HTML interne de l'objet, puis de commencer à utiliser les manipulateurs de page dans les barres d'outils. Avec Selenium 2, vous pourrez envoyer des frappes au clavier afin qu'elles fonctionnent mieux et beaucoup plus facilement.

1

Travailler en Sélénium:

selenium.runScript("for(var i in CKEDITOR.instances) { var x = CKEDITOR.instances[i]; " + " x.setData('" + texto + "'); }"); 
+0

Ce serait génial si vous pouviez insérer votre code dans '' afin qu'il soit formaté correctement. Également expliquer un peu à propos de votre solution va de la façon de gagner cette réputation! –

+0

Peu d'améliorations pour Selenium IDE, ceci ajoute une chaîne unique à chaque instance de ckeditor mais attend d'abord que toutes les instances soient chargées. http://pastebin.com/cMqbsvgR – sitnarf

1

J'ai trouvé une solution qui a fonctionné pour moi. Vous pouvez insérer un utilisateur extension.js (Options> Options> Sélénium de base Extension> Parcourir) écrivant ce qui suit:

Selenium.prototype.doInsertCKEditor = function(locator,word) 
{ 
    this.doWaitForCondition("var x = Selenium.browserbot.findElementOrNull('//td[@id=\"cke_contents_form \"]');x != null;", "50000"); 
    this.doRunScript("CKEDITOR.instances['"+locator+"'].setData('"+word 
+"');"); 
} 

Cela va ajouter l'option insertCKEditor dans les options de commande de Selenium IDE.