当前位置:职场发展 > 将自定义标题从 Capybara 传递到 Selenium

将自定义标题从 Capybara 传递到 Selenium

  • 发布:2023-10-01 23:03

|| 我们使用自定义标头来验证我们的 Web 应用程序。 http代理服务拦截请求,确认用户的真实性,并将自定义标头注入到请求中。 为了测试应用程序,我需要在请求命中 ApplicationController 方法之前将这些标头写入请求。现在,当前的 hack 适用于我所有的非 javascript 测试: hooks.rb 中的
#
做之前

  需要 \'capybara/driver/rack_test_driver\'
  模块水豚::驱动程序
    正宗类 < RackTest
      定义环境
        super.merge(\'My-Custom-Header\' => \"foo\")
      结尾
    结尾
  结尾

  Capybara.register_driver(:authentic) 做 |app|
    水豚::驱动程序::www.sychzs.cn(应用程序)
  结尾

  水豚.default_driver = :authentic
结尾

#在控制器中
类 ApplicationController < ActionController::Base
  before_filter:验证

  默认验证
    渲染 :file => File.join(Rails.root, \"public\", \"403.html\") 除非 request.env.keys.include?(\'foo\')
  结尾
结尾
对于我不想验证的任何请求,我可以使用以下标签使用常规的rack_test驱动程序:
功能:身份验证
  应该对有效用户进行身份验证。
  无效用户应被重定向到登录页面。场景:授权
    鉴于我在主页上
    然后我应该看到“创建一个新的研究项目”

  @rack_test
  场景:未经授权
    鉴于我进入主页
    然后我应该看到“您无权查看此页面。”
当我使用 selenium 浏览器时,在驱动程序上重新定义环境的类似方法似乎不起作用。我认为这是因为应用程序以 Java 线程为后台,并且所有 Rack 内容都已设置。 我应该在哪里注入selenium的自定义标头来提取它? 谢谢! ​​

相关文章