Как прикрепить изображение на страницу реакции - PullRequest
0 голосов
/ 08 июня 2018

Как загрузить (прикрепить изображение) изображение на реагирующих страницах, используя (capybara webkit + cucumber) для тестирования интерфейса интеграции.

Я могу прикрепить изображение к странице рельсов, но реагировать на страницы, которые я не могу загрузить?

Я попробовал некоторые решения, но так и не смог найти решение.

1) attach_file('.pb-text-field__browse_file_label', image_file_name)

2) find('.pb-text-field__browse_file_label').set('/scratch/data/1.png')

Фактический HTML:

<form>
  <div class="file text-field">
    <div class="text-field__input-wrapper">
      <div class="text-field__box"></div>
      <div class="text-field__upload_file">
        <input class="text-field__file-input" placeholder="Upload only jpeg or png images" disabled=""> 
        <div class="text-field__browse_file"> 
          <label class="text-field__browse_file_label" for="image-file">Browse</label> 
          <input id="image-file" class="text-field__browse" type="file">{this is invisible} 
        </div>
      </div> 

1 Ответ

0 голосов
/ 08 июня 2018

attach_file принимает имя файла ввода, идентификатор или связанный текст метки - https://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#attach_file-instance_method - поэтому передача его в селектор класса CSS никогда не будет работать.Вы не показываете, какой у вас настоящий HTML, но при условии, что у вас есть файл, например

<input id="my_file_input" name="some_name" type="file"/>

, тогда вы можете выполнить любой из следующих действий:

attach_file('my_file_input', path_to_file)
attach_file('some_name', path_to_file)

Другая проблема, которую вы можете запуститьДело в том, что ввод файла часто скрыт, чтобы обеспечить согласованность стилей в разных браузерах.Если это относится к вашему приложению, то вы можете использовать опцию make_visible, чтобы сообщить Capybara, что нужно сделать ввод файла видимым, прикрепить файл и затем скрыть ввод.

attach_file('my_file_input', path_to_file, make_visible: true)

ОБНОВЛЕНИЕ: теперь, когда предоставлен фактический HTML-код и подтверждено, что ввод файла действительно вводится, любое из следующего должно работать

attach_file('image-file', path_to_file, make_visible: true)
attach_file('Browser', path_to_file, make_visible: true)
find('.text-field__browse_file').attach_file(path_to_file, make_visible: true)
...