如何使用Watir-WebDriver将文本发送到CKEditor WYSIWYG编辑器框

时间:2011-08-11 12:27:57

标签: watir watir-webdriver

我有一个watir-webdriver脚本,它使用下面的代码设置一个CKEditor框,但这只适用于Mac OSX上的Firefox,当我专注于屏幕时。例如,如果我将注意力转移并让此脚本在后台运行,则不会输入文本(但不会引发异常或错误)。

任何人都知道如何始终确保设置好吗?

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"

(谷歌Chrome在Mac OSX上运行正常,但我也希望对Firefox运行我的测试)

3 个答案:

答案 0 :(得分:1)

Firefox不会调度焦点/模糊事件,除非它位于前台。最可靠的解决方案是始终确保每个浏览器实例单独显示(或VM)。如果您无法使用,则可以使用Browser#execute_script。

设置编辑器的值

答案 1 :(得分:1)

感谢Jari的指针,我最终执行了javascript来可靠地更新字段:

b.execute_script "CKEDITOR.instances.editor1.setData( 'hello' );"

答案 2 :(得分:-1)

试试这个:

b.frame(:title => 'Rich text editor, editor1, press ALT 0 for help.').body.send_keys "hello world"

它适用于OSX和FF3.6