2012-07-20 11 views
8

タバコの形をテストするためにカピバラを使用することに問題があります。 tinymce-railsを使用していて、私のフォームに7人の編集者がいます。また、私はtinimceでasciimathプラグインを使用しています。capybaraとseleniumを使ってtinymce-rails editorを書き込む方法は?

すべてうまくいきますが、tinymceエディタで記入するテストを書くことができません。ここで

私のステップ定義コードは、同じようhere説明されているものと非常によく似ています方法です:

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を使ってテストすると何も起こりません。

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

ありがとうございました。

答えて

2

hereと記載されているようにクロムに切り替えると私の問題が解決しました。

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

まだ私はそれがfirefoxにとって有効な質問だと思います。

+0

http://code.google.com/p/selenium/issues/detail?id=3569 –

+0

あなたのお役に立ててくれてありがとう、アンドレイ。私もそのページを見て、その後クロムに切り替えることにしました。 –

0

はTinyMCEをテキストエリアの入力が含まれていますインラインフレームに切り替えるようにしてください、と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 
+0

ありがとうございます。しかし、これは役に立たなかった。私はiframeでナビゲートしたり、エディタを選択したり、問題なく入力をクリアすることができます。でも、私は送信することができます:タブキー。私の問題は、私はファイアフォックスで '文字列'を送信することはできません。また、すべてが現在クロムで作業しています。 –

4

私は、これは古い問題であることを知っているが、この問題の解決しようとしたときに、私はちょうどそれを発見しました。

元の質問によれば、同じページに7個のtinymceがあると言われましたが、私の解決策も彼のために働くかもしれないと思っていますが、私の場合のように1個のtinymceがあればうまくいくことはわかります。私の要求仕様で

私はこの使用:

page.execute_scriptを( '$(tinymce.editors [0] .setContent( "ここに私のコンテンツ"))')

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

私の魅力のように働いた。私は、もし1つ以上の金属が存在するなら、その位置によって呼び出すことができると思います。

関連する問題