2012-06-18 4 views
0

En utilisant Watir Webdriver, je suis capable de détecter qu'un ckeditor WYSIWYG existe, cependant toute tentative de send_keys pour lui donner une chaîne vide?Utilisation de Watir Webdriver et WYSIWYG

Je suis en mesure d'exécuter le test ci-dessus avec le ckeditor sans problèmes:

require "watir-webdriver" 
b = Watir::Browser.new :firefox 
b.goto "http://ckeditor.com/demo" 
b.frame(:title => 'Rich text editor, editor1, press ALT 0 for help.').send_keys "hello world" 

Je suis cependant d'avoir un problème d'exécuter ce code pour mon propre test:

b.frame(:title, "Rich text editor, currentItem.contentText, press ALT 0 for help.").exists? 
=> true 

b.frame(:title, "Rich text editor, currentItem.contentText, press ALT 0 for help.").send_keys 'text' 
=>"" 

Rien est rendu à WYSIWYG. D'autres cadres sur la page Web me permettent d'éditer des champs de texte. Des pensées?

+0

Je préférerais ne pas utiliser la méthode execute_script car cela invalide mes tests. – alp2012

+0

Pourquoi l'utilisation de la méthode execute_script invaliderait-elle vos tests? Si vous ne développez pas votre propre éditeur WYSIWYG, vous ne testez pas l'éditeur, mais vous pouvez plutôt l'utiliser pour ajouter du contenu à votre application, ce qui est possible grâce à la méthode execute_script. –

Répondre

2

De manière générale, l'envoi de clés à une image entière est une mauvaise idée.

Dans ma propre expérience avec le FCKEditor, je l'ai seulement fait fonctionner si je trouve l'élément spécifique qui peut répondre à la méthode .send_keys.

Voici un exemple de quelque chose qui fonctionne pour moi (je devine que ma première référence de l'élément de cadre va être équivalent à l'élément de cadre que vous frappez en utilisant la balise « title »):

@browser.frame(:id, "body___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys "your text here" 
Questions connexes