首页 > 解决方案 > 如何在 Capybara 通过 Selenium 运行的 Chrome 中启用密码保存?

问题描述

我使用 Capybara 编写了一个测试,检查 Chrome 的自动填充功能是否适用于我的 Web 应用程序的登录表单。如果在浏览器中运行 Web 应用程序并在注册后保存密码,Chrome 会自动填写登录表单。但是对于自动化测试,我没有找到一种方法让 Chrome 保存 Capybara/Selenium 输入的注册表单的密码。似乎甚至没有显示此弹出窗口。有没有办法启用密码保存?

标签: seleniumcapybaraselenium-chromedriver

解决方案


你可以试试这个:

Capybara.register_driver :selenium do |app|
  preferences = {credentials_enable_service: true,
                 password_manager_enabled: true}
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome
  capabilities['chromeOptions'] = {'prefs' => preferences}
  Capybara::Selenium::Driver.new(app, browser: :chrome,
                                 desired_capabilities: capabilities)
end  

工作流程将是这样的:

  1. 启动驱动程序
  2. 输入凭据
  3. 浏览器会询问您是否要保存它们
  4. 登录应用程序并注销
  5. 然后尝试第二次输入凭据

也可能你会对capybara-sessionkeeper 感兴趣


推荐阅读