2010-04-10 5 views
13

क्या कोई जानता है कि मैं सेलेनियम के साथ काम करने के लिए सीकेईडीटीयर कैसे प्राप्त कर सकता हूं। मैं "एचटीएमएल संपादन" फ़ील्ड पर ध्यान केंद्रित करने या HTML फ़ील्ड के मान को बदलने में सक्षम नहीं हूं।सेलेनियम और सीकेईडिटर

क्या किसी के पास इसका अनुभव है?

उत्तर

17
बस anwser पूरा करने के लिए

: runScript("CKEDITOR.instances['InstanceName'].setData('<p>testContent</p>');") यह getEval कमांड के साथ काम नहीं किया: मैं इसके साथ काम करने के लिए मिला है।

1

जब मुझे WYSIWYG संपादकों के खिलाफ परीक्षण करना पड़ा तो मुझे सामग्री क्षेत्र में काम करने के लिए अपना स्वयं का तंत्र बनाना पड़ा। आम तौर पर इसमें ऑब्जेक्ट के आंतरिक HTML को सेट करना होता है और फिर टूल बार में पेज मैनिपुलेटर्स का उपयोग करना प्रारंभ होता है।

सेलेनियम 2 के साथ आप कीस्ट्रोक भेजने में सक्षम होंगे ताकि वे बेहतर काम कर सकें और बहुत आसान हो।

1

सेलेनियम में कार्य करना:

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

यह शानदार होगा अगर आप अपना कोड '' में लपेट सकते हैं ताकि यह सही ढंग से स्वरूपित हो। यह भी बताते हुए कि आपका समाधान उस प्रतिनिधि को अर्जित करने के तरीके के साथ आता है! –

+0

सेलेनियम आईडीई के लिए थोड़ा सुधार, यह प्रत्येक ckeditor उदाहरण के लिए अद्वितीय स्ट्रिंग जोड़ता है लेकिन पहले सभी उदाहरण लोड होने तक प्रतीक्षा करता है। http://pastebin.com/cMqbsvgR – sitnarf

1

मैं एक समाधान है कि मेरे लिए काम किया पाया है। आप एक उपयोगकर्ता के extension.js सम्मिलित कर सकते हैं (विकल्प> विकल्प> सेलेनियम कोर एक्सटेंशन> ब्राउज़) निम्नलिखित लेखन:

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

यह सेलेनियम आईडीई की कमान विकल्पों में insertCKEditor विकल्प जोड़ देगा।