为单个 Capybara 测试选用代理浏览器
注册一个具名 Selenium 驱动,然后在不改动现有浏览器启动选项的情况下,把它用于需要走另一条路由的测试。
保留测试套件原有的驱动,另外注册一个用于代理路由的 Chrome 驱动:
Capybara.register_driver :chrome_via_proxy do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--proxy-server=http://proxy.example:8080')
Capybara::Selenium::Driver.new(
app, browser: :chrome, options: options
)
end在需要走该路由的工作周围选用它:
Capybara.using_driver(:chrome_via_proxy) do
visit 'https://www.example.com/'
endRSpec 也可以通过 driver 元数据选用已注册的驱动;请沿用测试套件现有的集成方式。代理设置是一个浏览器创建参数,因此注册这个驱动不会修改已经在另一个驱动下运行的浏览器。切换驱动同样不会转移该浏览器的 cookie 或已打开的连接。
该示例使用未认证的 HTTP 代理,公开候选见HTTP 代理列表。认证代理需要浏览器支持的身份认证方案。如果测试浏览器必须直接访问本地应用,请在浏览器支持的绕过配置中设置所需的例外。
对于远程浏览器,请从该浏览器所在机器上分别评估代理与应用的连通性。