【发布时间】:2019-06-19 16:54:19
【问题描述】:
设置
带有 capybara 和远程 selenium (standalone-chrome-debug docker image) 驱动程序的 Rspec。使用 StimulusJS 作为 Javascript 框架。
问题
使用常规浏览器,一切正常。当我尝试使用 capybara selenium 测试 javascript fetch 事件时 - POST 请求因 unauthorized 而失败。感觉就像是另一个浏览器会话。例如,常规登录表单也可以正常工作 - 只是 javascript 'ajax' 调用不起作用。
水豚配置
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
)
end
HTML 片段
<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)
【问题讨论】:
标签: ruby-on-rails selenium rspec capybara