设置
Rspec与水豚和远程硒(独立的-铬-调试码头图像)驱动程序。使用StimulusJS作为Javascript框架。
问题
有了常规浏览器,一切都像它应该做的那样工作。当我尝试用capybara测试javascript获取事件时,POST请求在未经授权的中失败。感觉好像是另一个浏览器会话。例如,常规的登录表单也可以工作--只是javascript 'ajax‘调用不起作用。
Capybara配置
Capybara.app_host = "http://#{ENV['TEST_APP_HOST']}:#{ENV['TEST_PORT']}"
Capybara.run_server = false
Capybara.javascript_driver = :selenium
args = ['--no-default-browser-check', '--start-maximized']
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => args})
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(
app,
browser: :remote,
url: "http://#{ENV['SELENIUM_HOST']}:#{ENV['SELENIUM_PORT']}/wd/hub",
desired_capabilities: caps
)
endHTML片段
<a data-action="click->checkout-special-category#toggle" id="checkout-special-category-0" href="/dashboard/websites/db9cfdc39a7e251859f525b911466fd7/toggle_special_category?c=special-category-0">Click</a>测试片段
first('#checkout-special-category-0').click
expect(first('#checkout-special-category-0')).to have_selector('.checkout-special-categories--is-active')日志
Started POST "/dashboard/websites/db9cfdc39a7e251859f525b911466fd7/toggle_special_category?c=database-research" for 172.21.0.3 at 2019-06-19 15:14:53 +0000
Processing by Dashboard::WebsitesController#toggle_special_category as */*
Parameters: {"c"=>"database-research", "id"=>"db9cfdc39a7e251859f525b911466fd7", "website"=>{}}
Completed 401 Unauthorized in 0ms (ActiveRecord: 0.0ms)发布于 2019-06-20 05:18:44
最有可能的原因是所要获取的域名与设置在-例如localhost vs 127.0.0.1上的会话cookie的域名不同,等等。
https://stackoverflow.com/questions/56672574
复制相似问题