您好我正在尝试使用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驱动程序。 任何想法如何解决这个
答案 0 :(得分:2)
由于样式原因,文件输入通常是隐藏的,这使得它们不可交互。因为capybara attach_file
有一个选项可以让文件输入暂时变得可见/可互动
page.attach_file field, file_path, make_visible: true
这将临时应用CSS {不透明度:1,显示:'阻止',可见性:'可见'到文件输入元素。如果CSS无法使输入可见,您可以将make_visible
设置为哈希而不是true