capybara poltergeist 无法上传文件

capybara poltergeist cant upload file

您好,我正在尝试在隐藏输入上使用水豚恶作剧上传文件。这是我的功能文件

  Scenario: Import csv with valid and invalid entries, and try to charge them again
    And  Joe navigates to "Lottery import" page of "Joe's Test Event"
    And  Joe uploads file from path "/vagrant/tests/capybara/features/admin/lottery_import/step_definition/sample_lottery_entries_list.csv" into "file" field

和用于导入的 rb 文件

Then(/^(\S*) uploads file from path "([^"]*)" into "([^"]*)" field$/) do |user, file_path, field|
  page.attach_file(field, File.expand_path(file_path), :visible => false)
  waits_for_spinner_by_class_not_visible
end

奇怪这适用于 Selenuim 驱动程序,但不适用于 poltergeist 驱动程序。 关于如何解决这个问题的任何想法

由于样式原因,文件输入通常被隐藏,这使得它们不可交互。因为水豚的attach_file有一个选项可以更容易地临时输入文件visible/interactable

page.attach_file field, file_path, make_visible: true

这将暂时应用 CSS { opacity: 1, display: 'block', visibility: 'visible' } 到文件输入元素。如果 CSS 不会使输入可见,您可以将 make_visible 设置为散列而不是 true