Selenium, TinyMCE e CKEditor

Ultimamente, come avete certamente capito, sto lavorando con Selenium per testare pagine web.

E’ molto probabile che nella vostra applicazione web usate TinyMCE o CKEditor. Non mi pongo su quale sia meglio l’importante è che riesco a scrivere nelle caselle di testo con entrambi.

Avendo TinyMCE (3.0.7  e 3.2.7  (wordpresss.com))  sono riuscito a scrivere con:

type dom=document.getElementById("TEXTAREAID_ifr").contentWindow.document.body Hello world

dove TEXTAREAID è l’ID della text area su cui TinyMCE si basa.

Con CKEditor (3.2.1 del 09 Apr 2010) sono riuscito a scrivere con:

runScript CKEDITOR.instances[‘TEXTAREAID’].setData(‘Hello world’);

dove TEXTAREAID è l’ID o il nome della text area su cui CKEditor si basa.

Con FCKEditor 2.5.1 incorportato in Mediawiki (vedi sandbox con Rich Editor abilitato), sono riuscito a scrivere con:

runScript FCKeditorAPI.GetInstance(‘TEXTAREAID’).SetHTML( ‘Hello World’ );

Per farla più semplice ho scritto una funzione nel file user-extension.js per TinyMCE:

Selenium.prototype.doTypeInTinymce= function(textareaid, testo) {
var oggettoid= textareaid+"_ifr";
var locator = 'dom=document.getElementById(\"'+oggettoid+'\").contentWindow.document.body';
selenium.doType(locator,testo);
};

quindi potete scrivere direttamente:

typeInTinymce content Hello world

dove content è l’id della text area nel mio caso (blog di WordPress).

Potete anche aggiungere html, del tipo:

typeInTinymce content <b>Hello world</b>

Per l’FCKEditor potete scrivere il seguente comando:

Selenium.prototype.doTypeInFckeditor= function(textareaid, testo) {
var script = "FCKeditorAPI.GetInstance(\'"+textareaid+"\').SetHTML(\'"+testo+"\')";
selenium.doRunScript(script);
};

quindi potete scrivere direttamente:

typeInFckeditor wpTextbox1 Hello world

dove wpTextbox1 è l’id della text area nel caso di Mediawiki con FCKEditor.

A presto !

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s