我有一个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运行我的测试)
答案 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