2009-10-08 8 views
1

J'ai travaillé sur les tests d'intégration d'une webapp en utilisant watin. La webapp utilise fckeditor comme l'un des contrôles richtext.Test Watin de FckEditor

Voici le morceau de html du viewsource de mon webapp qui comprend fckeditor

iframe id = "ctl00_HeaderMain_txtSafetyNetDescription ___ Cadre" src = "/ FCKEditor/éditeur/fckeditor.html? InstanceName = ctl00_HeaderMain_txtSafetyNetDescription & Barre d'outils = myApp" largeur = "100%" height = "200px" frameborder = "non" scrolling = "non"/iframe

En utilisant le script watin ... je peux obtenir l'objet frame avec le code suivant.

Frame frame = ie.Frame(Find.ById("ctl00_HeaderMain_txtSafetyNetDescription___Frame")) ; 

Maintenant, je veux écrire du texte dans le fckeditor. Mais je ne suis pas sûr de savoir comment écrire à la fckeditor car c'est une image - quelqu'un peut m'aider à ce sujet.

Merci. Iyyengar.

Répondre

1

J'ai trouvé la solution du script de test watin pour fckeditor à l'aide de firefox. Merci FireFox. Avec l'éditeur fck, il y a un cadre dans le cadre. C'est-à-dire expose la structure interne mais n'expose pas le cadre innerhtml.

Où FireFox montre clairement l'arbre dom.
Watin ne permet pas de mettre à jour le innerhtml du para. Cependant, il expose une méthode appelée RunScript (excellent). Nous pouvons écrire un JS et l'exécuter pour l'objet. Dans ce cas, c'est Child Frame. Et cela a résolu le problème

Frame frame = ie.Frame (Find.ById ("ctl00_HeaderMain_txtSafetyNetDescription ___ Frame")); Cadre ChildFrame = frame.Frame (Find.BySrc ("javascript: void (0)")); Para para = ChildFrame.Para (Find.ByIndex (0)); // fck editr n'identifie pas le para - et doit donc être fourni avec un identifiant para.SetAttributeValue ("id", "fckpara"); string fckvalue = "Texte de Myfckeditor"; chaîne js = ""; js = js + "document.getElementById ('fckpara'). InnerHTML = '" + fckvalue + "';";

 ChildFrame.RunScript(js); 

Je suis exclue. Merci à tous.

Iyyegnar.

2

il peut vous aider ~

cadre Frame = ie.Frame ("blogBody-EditingArea"); Frame.ElementWithTag ("body", Find.Any) .SetAttributeValue ("innerText", "心情 的 心情 记录" + DateTime.Now)

+0

je devais le faire comme ceci: var = richTextFrame browser.Frame (WatiN.Core.Find.ByTitle ("éditeur de texte enrichi, DESCRLONG $ 0, appuyez sur ALT 0 pour l'aide")); richTextFrame.Body.SetAttributeValue ("innerText", "Détails de la note de test"); – Omzig

Questions connexes