11

カピバラを使用して tinymce フォームをテストするのに問題があります。私はtinymce-railsを使用しており、フォームには 7 つのエディターがあります。また、tinymceでasciimathプラグインを使用しています。

すべて正常に動作しますが、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

それでclearsend_keys :tab期待どおりに動作します。しかし、文字列を送信できません。send_keys関数は常に空の文字列を返し、pry を使用してテストしても何も起こりません。

ここで何がうまくいかないのですか?また、問題をデバッグ/調査するにはどうすればよいですか?

ありがとう。

4

5 に答える 5

9

これは古い質問であることは知っていますが、この問題を解決しようとしているときに見つけました。

元の質問では、彼は同じページに 7 つの tinymce を持っていると言っていましたが、私の解決策は彼にとってもうまくいくと思いますが、私の場合のように tinymce が 1 つあればうまくいくことはわかっています。

私のリクエスト仕様では、これを使用しました:

page.execute_script('$(tinymce.editors[0].setContent("my content here"))')

withはpage.execute_script、jQuery 関数を実行するように指示します。次に、最初の Tincymce エディターを見つけて、コンテンツを設定します。

私にとって魅力のように働きました。tinymceが複数ある場合は、その位置で呼び出すことができると思います。

于 2014-04-16T19:51:38.493 に答える
2

ここで説明されているようにクロムに切り替えると、問題が解決しました。

明らかに、この問題は Firefox ドライバーのバグに関連しています。

それでも、それはFirefoxにとって有効な質問だと思います。

于 2012-07-23T14:17:32.417 に答える
0

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
于 2012-07-25T11:24:22.963 に答える