画面中央部の、星をRspecから入力させたいのですが、やり方がわからず困っております。
星の部分はjquery.ratyを使用しております。
show.html.slim
.row .col-sm-3.col-sm-offset-2 .text-center = image_tag @book.image_url .col-sm-6 h4.text-center =@book.title table.text-center tr td.text-center b 作者 td = @book.author tr td.text-center b 出版社 td = @book.publishername tr td.text-center b 評価 td .star-average div id="star-rate_#{@book.id}" javascript: $("#star-rate_#{@book.id}").raty({ path: '/assets/', half: true, readOnly: true, score: #{@book.microposts.average(:rate).to_f.round(1)} }); .chk.text-center =link_to '楽天で詳しく見る', @book.rakuten_url, class:'btn btn-danger' -if admin? p= link_to 'edit',edit_book_path(@book) .row .col-sm-8.col-sm-offset-2 = render 'shared/micropost_form', btnname: "レビューを投稿" .row = render @microposts
=form_for @micropost do |f| = render 'shared/error_messages', object: f.object =f.label :rate, '評価' .star-rating =f.label :title, 'タイトル' =f.text_field :title,placeholder:"タイトルを入力" =f.label :content, 'コメント' =f.text_area :content,placeholder:"コメントを入力" = hidden_field_tag :book_id,@book.id = f.hidden_field :rate , class: :book_rating = f.label :pictures, "画像を追加" = f.file_field :pictures, class:'btn btn-default', :multiple => true .btn-parent =f.submit btnname, class: "comu btn btn-primary" javascript: $('.star-rating').raty({ path: '/assets/', click: function(score, e) { $(".book_rating").val(score) } }); $('input').change( function() { var size_in_megabytes = this.files[0].size/1024/1024; if (size_in_megabytes > 5) { alert('画像のサイズが5MBを超えています。画像は縮小してアップロードされます。'); } });
試したこと
隠しフィールドになるので、以下の記述を試してみましたが、いずれもうまくいきませんでした。
find('#micropost_rate', visible: false).set(3)
find('.book_rating', visible: false).set(3)
Selenium::WebDriver::Error::ElementNotInteractableError: element not interactable (Session info: headless chrome=76.0.3809.132)
find('.star-rating', visible: false).set(3)
⇒値の入力が行われず、modelで設定したバリデーションに引っかかる形になる
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。