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

时间:2014-04-16 16:32:12

标签: ruby watir watir-webdriver

我是Watir和Ruby的新用户。我有一个watir-webdriver脚本,填写页面上的表单并提交它们。该页面有几个Redactor WYSIWYG编辑框,我试图向他们发送文本。最初我做了以下事情:

@browser.div(:id => 'redactor-container-5').send_keys 'automated test script'

然而,我随后发现Firefox必须处于前台才能实现这一点(这对我的团队来说是一个问题,因为他们运行的脚本有时会在后台运行)。所以我使用了一些JavaScript来填写相同的字段。

@browser.execute_script('var html="automated test script"; $(".redactor, .redactorCaption, .redactorTitle").redactor("insertHtml", html);')

然而,这也要求浏览器处于前台(这在前台完全正常)。我看了this link,但没有Redactor示例。有人知道如何在后台设置这些字段吗?

1 个答案:

答案 0 :(得分:1)

我刚刚在我的机器上进行了测试,即使FF最小化也能正常工作。

irb(main):001:0> require "watir-webdriver"
=> true
irb(main):002:0> b = Watir::Browser.new :ff
=> #<Watir::Browser:0x454b6ab6 url="about:blank" title="">
irb(main):003:0> b.goto "http://imperavi.com/redactor/"
=> "http://imperavi.com/redactor/"
irb(main):004:0> b.div(:class => 'redactor_ redactor_editor').send_keys 'automated test script'
=> ""

在执行最后一步之前,我实际上最小化了Firefox。

的Env。细节:

运行Windows 7 Enterpricse SP1(64位)

Firefox 24.4.0 ESR

watir-webdriver(0.6.9)