capybara poltergeist无法上传文件

时间:2017-05-03 12:21:20

标签: ruby selenium capybara

您好我正在尝试使用capybara poltergeist上传隐藏输入的文件。这是我的专题文件

  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驱动程序。 任何想法如何解决这个

1 个答案:

答案 0 :(得分:2)

由于样式原因,文件输入通常是隐藏的,这使得它们不可交互。因为capybara attach_file有一个选项可以让文件输入暂时变得可见/可互动

page.attach_file field, file_path, make_visible: true

这将临时应用CSS {不透明度:1,显示:'阻止',可见性:'可见'到文件输入元素。如果CSS无法使输入可见,您可以将make_visible设置为哈希而不是true