3

我有一个 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"

(谷歌浏览器在 Mac OSX 上运行正常,但我也想在 Firefox 上运行我的测试)

4

3 回答 3

1

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

b.execute_script "CKEDITOR.instances.editor1.setData( 'hello' );"
于 2011-08-11T21:16:03.773 回答
1

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

于 2011-08-11T13:10:12.007 回答
-1

尝试这个:

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

它适用于 OSX 和 FF3.6

于 2011-08-11T14:14:10.133 回答