Capybara with Poltergeist - 与数据方法的链接:删除或:补丁不触发

时间:2016-11-28 18:02:08

标签: ruby-on-rails capybara poltergeist

使用Capybara与Poltergeist点击具有python(abi) = 2.7属性的链接。

Capybara继续前进,就像链接被成功点击一样,但没有实际请求命中服务器。

测试日志显示了导致显示页面的所有步骤......但没有请求相应的链接。

找到没有问题的正确链接并认为它被点击了它。

我应该指出它不是:远程链接,它在开发中工作

有什么想法吗?

以下是代码:

data-method='delete'

我延长了等待时间,增加了长时间的睡眠时间。在“删除”链接之前使用scenario "deletes a document", js: true do set_auto_accept_for_alert_and_confirm_dialogs sign_in_admin admin visit admin_dashboard_path find(:css, '#mediaDropdown').trigger('click') find(:css, '#documents_link').click find(:css, "#delete_link_#{document.id}").click expect(current_path).to eq admin_documents_path expect(Document.all.size).to eq 0 expect(page).to have_content(I18n.t('notices.admin.documents.destroy.success')) end &试着在控制台中调用它。

Capybara(2.10.1) - 恶作剧者(1.11.0) - Rails(4.2.7.1) - jquery-rails(4.2.1) - turbolinks(5.0.1)

1 个答案:

答案 0 :(得分:1)

我打开了调试:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, { js_errors: true, debug: true })
end

这引发了javascript错误Can't find variable: $ - 因此没有加载jQuery。

我检查了测试日志以查看是否正在调用javascript文件 - 它是。

我更改了javascript文件以更改页面上的某些文本 - 但没有任何反应。所以问题似乎出现在资产管道上。

最后,问题是因为在.sprokets-manifest文件夹中创建了public\assets文件,否则该文件为空。

我从未在此应用上预编译资产,因此我不知道清单文件的来源。

删除.sprokets-manifest文件很容易解决。