首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带Javascript提取的Capybara Selenium在未经授权时失败

问带Javascript提取的Capybara Selenium在未经授权时失败
EN

Stack Overflow用户
提问于 2019-06-19 16:54:19
回答 1查看 379关注 0票数 1

设置

Rspec与水豚和远程硒(独立的-铬-调试码头图像)驱动程序。使用StimulusJS作为Javascript框架。

问题

有了常规浏览器,一切都像它应该做的那样工作。当我尝试用capybara测试javascript获取事件时,POST请求在未经授权的中失败。感觉好像是另一个浏览器会话。例如,常规的登录表单也可以工作--只是javascript 'ajax‘调用不起作用。

Capybara配置

代码语言:javascript
复制
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片段

代码语言:javascript
复制
<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>

测试片段

代码语言:javascript
复制
first('#checkout-special-category-0').click
expect(first('#checkout-special-category-0')).to have_selector('.checkout-special-categories--is-active')

日志

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2019-06-20 05:18:44

最有可能的原因是所要获取的域名与设置在-例如localhost vs 127.0.0.1上的会话cookie的域名不同,等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56672574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档