【问题标题】:How to send text to a CKEditor WYSIWYG editor box using Watir-WebDriver如何使用 Watir-WebDriver 将文本发送到 CKEditor WYSIWYG 编辑器框
【发布时间】:2011-08-11 12:27:56
【问题描述】:

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

(Google Chrome 在 Mac OSX 上运行正常,但我也想在 Firefox 上运行测试)

【问题讨论】:

    标签: watir watir-webdriver


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我在 browser.execute_script("CKEDITOR.instances.editor1.setData('hello');") 上取得了成功
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      试试这个:

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

      它适用于我在 OSX 和 FF3.6 上

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-08
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多