2010-04-10 6 views
13

Weiß jemand, wie ich den Assistenten mit Selen arbeiten kann. Ich bin nicht in der Lage, den Fokus auf das Feld "HTML-Bearbeitung" zu bekommen oder den Wert des HTML-Feldes zu ändern.Selen und ckEditor

Hat jemand Erfahrung damit?

Antwort

17

Nur für den Abschluss des anwser: Ich habe es mit zu arbeiten: runScript("CKEDITOR.instances['InstanceName'].setData('<p>testContent</p>');") Es ist nicht mit dem getEval Befehl nicht funktionierte.

1

Wenn ich einen Test gegen WYSIWYG-Redakteure hatte, musste ich meinen eigenen Mechanismus bauen, um im Inhaltsbereich zu arbeiten. Normalerweise müssen Sie den inneren HTML-Code des Objekts festlegen und dann die Seitenmanipulatoren in den Symbolleisten verwenden.

Mit Selen 2 können Sie Tastenanschläge senden, damit sie besser und einfacher funktionieren.

1

Arbeiten in Selen:

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

Es wäre toll, wenn Sie Ihren Code in '' so verpacken könnten, dass er korrekt formatiert wird. Auch ein wenig über Ihre Lösung zu erklären geht mit dem Verdienen dieses Rep! –

+0

Kleine Verbesserung für Selenium IDE, dies fügt jeder ckeditor-Instanz eine eindeutige Zeichenfolge hinzu, wartet jedoch zuerst, bis alle Instanzen geladen sind. http://pastebin.com/cMqbsvgR – sitnarf

1

ich gefunden habe, eine Lösung, die für mich gearbeitet. Sie können einen benutzer extension.js einfügen (Optionen> Optionen> Selenium Core-Erweiterung> Durchsuchen) Schreiben folgende:

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 
+"');"); 
} 

Dies wird die insertCKEditor Option in den Befehlsoptionen von Selenium IDE hinzuzufügen.