ruby-on-rails - 初始化后是否可以设置 Selenium::Driver::Proxy
问题描述
我目前正在使用 Capybara 和 Chromedriver 在我们的 Rails 应用程序中运行功能测试。目前我可以看到在初始化驱动程序时可以通过 args 设置代理。
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
args: [
'--window-size=1240,1400',
"--proxy-server=#{s.url}",
'--proxy-bypass-list=127.0.0.1'
]
)
end
但是,我只想要特定测试来代理特定端口,因为我还使用 Capybara::Discoball 来启动 Sinatra 应用程序作为我代理外部请求的应用程序。所以我需要能够在代理初始化到当前启动的 Sinatra 应用程序的端口后更改它。初始化后可以吗?
解决方案
否,但您可以使用另一个名称注册另一个驱动程序,然后指定将其用于需要它的测试。假设您使用的是默认的 capybara rspec 配置,类似于
Capybara.register_driver :selenium_chrome do |app|
# register the driver without proxy here
end
Capybara.register_driver :selenium_chrome_proxy do |app|
# register the driver with proxy config here
end
Capybara.javascript_driver = :selenium_chrome # register default JS driver
it "does something that doesn't need proxy", js: true do
# test that doesn't use the proxy config
end
it "does something that needs proxy", driver: :selenium_chrome_proxy do
# test that uses proxy
end
推荐阅读
- mapbox - 将 Mapbox-GL 导出到视频
- android - SearchView search_plate 未扩展到全宽
- php - HTACCESS WordPress 问题
- python - 从 Keras 的生成器中获取 x_test、y_test?
- ios - 如何从本地图像路径加载图像 Ios Swift 4
- java - json解析错误
- c# - 异步 SelectMany() 扩展方法无法推断类型参数
- reactjs - admin-on-rest 切换菜单(显示/隐藏)
- c# - 您对“物化”IEnumerables 的偏好?
- android - 如何以编程方式在android中以更快的速度下载文件