RSpec / Capybara не может найти ссылку на изображение - PullRequest
0 голосов
/ 30 декабря 2018

Я хочу использовать RSpec и Capybara для имитации нажатия на изображение, но я не могу этого сделать.

Моя ошибка заключается в следующем:

Failure/Error: click_on "icon_red_heart.png"

     Capybara::ElementNotFound:
       Unable to find visible css "#image-button"

spec / features / posts_spec.rb

scenario "push an image" do  
  visit posts_path
  expect(page).to have_current_path(posts_path)
  find('#image-button').click
end

likes / _likes.html.erb

   <%= button_to post_like_path(post, like), id: "image-button",method: :delete, remote: true do %>

      <%= image_tag("icon_red_heart.png")%>

Я не знаю, как указать это изображение.

Пожалуйста, научите меня.

1 Ответ

0 голосов
/ 30 декабря 2018

Как указано @jonrsharpe, вы не ссылаетесь на кнопку должным образом.Самый надежный способ ссылки на элемент - дать ему идентификатор и ссылаться на него по этому идентификатору.

Кроме того, кнопка, созданная button_to, может не иметь содержимого, в этом случае вам нужно будет сообщить Capybara, что кнопка не видна.

Измените строку button_to наthis:

<%= button_to post_like_path(post, like), id: "image-button", remote: true do %>

Затем измените ваш тест следующим образом:

scenario "push an image" do
  visit posts_path # Use the name of your path here
  find('#image-button', visible: false).click
end

Кстати, использование method: :delete в вашей ссылке button_to не дает ожидаемого результата.Метод автоматически устанавливается на POST, что, по-видимому, является тем, что вы хотите.

...