Cucumber の @javascript で実行しているシナリオに ]cleditor](https://github.com/cleditor/cleditor/blob/master/jquery.cleditor.js) という WYGSYG が利用されていて 普通に値を代入しただけだと反映されない問題に直面した。

caybara のドライバーには poltergeist を使用しています。

バリデーションをかけていて、入力しないと進めないので、javascriptを使って入力することにした。

$(selector).data('cleditor').$area.html( content );

.data(‘cleditor’).$area というところに情報が保存されていることがわかったので、そこのHTMLをさしかえます。 Safari で実行した場合は画面表示は変更されないので注意です。

これを cucumber の step で実行したいので、

description = "hogehoge"
code = <<"JAVASCRIPT"
$('#hogehoge').data('cleditor').$area.html('#{description}');
JAVASCRIPT
evaluate_script(code)

として、 evalute_script を利用して実行しました。

data属性にデータを保存しておくのは一般的なのかな?この辺の事情はよくしりません。