我有麻烦,使用水豚测试TinyMCE的形式。 我使用TinyMCE的护栏 ,并在我的表单编辑7。 另外我使用asciimath插件与TinyMCE的。
一切工作正常,但我不能写测试,以填补TinyMCE的编辑器。
这是我的步骤定义代码的样子,非常类似于描述什么是在这里 :
within_frame("content_ifr") do
editor = page.find_by_id('tinymce')
editor.native.send_keys 'test'
end
问题是,当我运行以下命令:
editor.native.clear # works, clear the editor area, I'm testing this with pry
editor.native.send_keys :tab # works, moves focus to next input
editor.native.send_keys 'test' # returns "", nothing happens, nothing in editor
所以, clear
和send_keys :tab
按预期工作。 但我不能发送任何字符串。 send_keys
功能总是返回空字符串,当我用撬做测试没有任何反应。
这是怎么回事错在这里? 我怎么能调试/调查这个问题?
谢谢。
我知道这是一个老问题,但我只是发现它在试图解决这个问题为好。
尽管最初的问题时说,他有相同的页面我认为我的解决方案可能为他工作过7分TinyMCE的的,但我知道,如果有一个TinyMCE的作为是我的情况下,它会奏效。
在我的要求规范我用这个:
page.execute_script('$(tinymce.editors[0].setContent("my content here"))')
该page.execute_script
有告诉它运行jQuery函数。 然后,找到的第一个tincymce编辑和设置内容。
工作对我来说就像魅力。 我想,如果有一个以上的TinyMCE它可以通过它的位置被调用。
改用Chrome描述这里解决我的问题。
显然,这个问题与在Firefox的驱动程序中的错误有关。
我仍然认为这是Firefox的一个有效的问题。
尝试切换到包含TinyMCE的textarea的输入,一个iframe,比send_keys:
# +session+ is an instance of Capybara::Session class
browser = session.driver.browser
browser.switch_to.frame(iframe_id)
editor.native.send_keys(text)
browser.switch_to.default_content
我遇到过同样的问题。 一天的战斗后,我的测试终于过去了。
我使用的代码是:
within_frame("producto_condiciones_ifr") do
editor = page.find_by_id('tinymce')
editor.native.send_keys 'filling text'
end
第一行是水豚的方法。 传递的参数是iframe的ID。
2号线是必须的。
在线路#3变,你想里面的TinyMCE放置文本