WebDriver Chrome浏览器:弹出“避免使用chrome来保存密码”

时间:2013-04-30 13:43:38

标签: selenium selenium-webdriver selenium-rc selenium-chromedriver selenium-grid

每当我的webdriver测试登录到应用程序时,出现'你想要chrome保存密码'弹出窗口..有没有办法避免这种情况?

请帮忙。

谢谢, 麦克

7 个答案:

答案 0 :(得分:19)

您需要配置以下Chrome驱动程序选项:

chromeOptions: {
            prefs: {
                'credentials_enable_service': false,
                'profile': {
                    'password_manager_enabled': false
                }
            }
        }

答案 1 :(得分:15)

我正在使用Python,这对我有用:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option('prefs', {
    'credentials_enable_service': False,
    'profile': {
        'password_manager_enabled': False
    }
})
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://google.com')

答案 2 :(得分:7)

只需将这些首选项添加到您的Chrome驱动程序选项:

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("credentials_enable_service", false);
prefs.put("password_manager_enabled", false); 
options.setExperimentalOption("prefs", prefs);

答案 3 :(得分:3)

您还可以在隐身模式下启动chromedriver以停止显示信息栏。请注意,体验将类似于隐身模式。命令将是

如果从命令行运行,请

chrome.exe --incognito 您可以将--incognito添加到chromeswitch数组,以便从webdriver执行。

答案 4 :(得分:3)

感谢上面的@karanvir Kang评论,我将以下内容添加到我调用量角器时使用的conf.js中。实施例

static std::map<char, MARIEapp::Instruction> MARIEinstruction = {
    { '0', &MARIEapp::JnS },
    { '1', &MARIEapp::Load },
    { '2', &MARIEapp::Store },
    { '3', &MARIEapp::Add },
    { '4', &MARIEapp::Subt },
    { '5', &MARIEapp::Input },
    { '6', &MARIEapp::Output },
    { '7', &MARIEapp::Halt },
    { '8', &MARIEapp::Skipcond },
    { '9', &MARIEapp::Jump },
    { 'A', &MARIEapp::Clear },
    { 'B', &MARIEapp::AddI },
    { 'C', &MARIEapp::JumpI },
    { 'D', &MARIEapp::LoadI },
    { 'E', &MARIEapp::StoreI }
};

void MARIEapp::Execute() {
    MARIEinstruction[IR[0]]();
    if (DebugMode)ShowRegisters();
}

在我的conf.js

protractor tests/conf.js --specs /tests/e2e/myspec.spec.js

答案 5 :(得分:1)

为了提供更完整的图片,这里是Selenium网格中Watir的工作配置:

RSpec.configure do |config|
  config.before :all do
    capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
      chromeOptions: {
          prefs: {
              'credentials_enable_service': false,
              'profile': {
                  'password_manager_enabled': false
              }
          }
      }
    )

    @browser = Watir::Browser.new(
      :remote,
      url: "http://#{ENV.fetch('HUB_HOST')}/wd/hub",
      desired_capabilities: capabilities
    )
  end

  config.after :all do
    @browser&.close
  end
end

docker-grid-watir的github上查看完整的概念证明。

答案 6 :(得分:0)

我知道这已经很老了,所有问题都已经正确回答了。只是想给我5美分。如果您使用的是Robot Framework,则可以使用波纹管。

open-browser
    ${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys
    ${cred_dict}=      Create Dictionary     credentials_enable_service=${FALSE}
    Call Method    ${chrome_options}    add_experimental_option    prefs     ${cred_dict}
    Create Webdriver     Chrome     chrome    chrome_options=${chrome_options}