私はCocoonを使ってレコードを追加しています。 IDはworkshop_instance_sessions_attributes_1477654140_start_time
のようになります。現時点では、DOMを走査して動的に生成されたIDを取得しています(これはうまくいきます)ので、入力を参照して記入することができます。動作する仕様。以下は私が試したことの選択です(first
はidを保持する変数です。@time
は基本的にはブロックとして実行されるTime.nowです)。コンソールでdatetime-localフィールドをcapybaraで埋め込む方法は?
作品:
page.evaluate_script("document.getElementById('#{first}').value = '#{@time.strftime('%Y-%m-%eT%H:%M')}'")
page.evaluate_script("$('##{first}').val('#{@time.strftime("%Y-%m-%eT%H:%M")}')")
はコンソールでは動作しません:
fill_in first, with: @time.strftime("%Y-%m-%eT%H:%M")
find("##{first}").set(@time.strftime("%Y-%m-%eT%H:%M"))
これらはすべて、最初に変数が正しく設定されているので、正しく動作していることがわかっているブロック内に既にあります(私がよく遭遇する共通の問題です)。
<input class="form-control" type="datetime-local" name="workshop_instance[sessions_attributes][1477655024][start_time]" id="workshop_instance_sessions_attributes_1477655024_start_time">
この仕様は、動作するように取得する方法上の任意のポインタがはるかに高く評価されるだろう:
参考までに私のHTMLは次のようになります。
を行う必要があるだろうと仮定すると、あなたの実験を行いました'fill_in'の代わりに' select'を使っていますか? – ndn
はいとはい。私は、これはちょうど日付フィールドで動作しています。それは一緒に日付と時間の問題であるようです。 – rorykoehler
[PRを開く](https://github.com/jnicklas/capybara)をお勧めします。 Capybaraが 'datetime-local' ATMをサポートしていないのは悲しいことですが、間違いなく可能です。 – ndn