使用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)
答案 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
文件很容易解决。