Подтвердить что ты не робот

Браузер Chrome WebDriver: избегайте "вы хотите, чтобы хром сохранил ваш пароль"?

Каждый раз, когда мой webdriver проверяет вход в приложение, появляется сообщение "Вы хотите, чтобы хром сохранил ваш пароль". Есть ли способ избежать этого?

Пожалуйста, помогите.

Спасибо, Mike

4b9b3361

Ответ 1

Вам нужно настроить следующие параметры драйвера chrome:

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

Ответ 2

Я использую 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')

Ответ 3

Просто добавьте эти настройки в свои параметры драйвера 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);

Ответ 4

Да, я только что нашел ответ. Мне пришлось заглянуть в каталог данных пользователя Chrome и найти все доступные chromeOptions в файле настроек. Я на Centos 7, поэтому путь выглядит следующим образом:

~/.config/google-chrome/Default/Preferences

Чтобы удалить диалог сохранения пароля, в разделе конфигурации JSON chromeOptions должно быть следующее:

chromeOptions: {
    prefs: {
        profile: {
            password_manager_enabled: false
        }
    }
}

Мне действительно приятно, что я наконец нашел эти варианты, однако, все еще разочаровывает то, что google или selenium не перечисляли все настраиваемые настройки.

Ответ 5

Вы также можете запустить хронограф в режиме инкогнито, чтобы остановить появление инфобаров. Обратите внимание, что опыт будет похож на режим инкогнито. Команда будет

chrome.exe --incognito, если вы работаете из командной строки вы можете добавить --incognito в массив chromeswitch для выполнения из webdriver.

Ответ 6

Благодаря комментарию @karanvir Kang выше, я добавил следующее в свой conf.js, который я использую, когда я называю транспортир. Пример

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

И в моем conf.js

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    seleniumPort: '4455',
    baseUrl: url,
    directConnect: false,
    //getMultiCapabilities: helper.getFirefoxProfile,
    capabilities: {
        browserName: 'chrome',
        chromeOptions: {
            prefs: {
                'credentials_enable_service': false,
                'profile': {
                    'password_manager_enabled': false
                }
            },
            args: [
                '--disable-cache',
                '--disable-application-cache',
                '--disable-offline-load-stale-cache',
                '--disk-cache-size=0',
                '--v8-cache-options=off'
            ]
        }
    },

Ответ 7

Чтобы обеспечить более полную картину, здесь приведена рабочая конфигурация для 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

См. полное доказательство концепции github в docker-grid-watir.

Ответ 8

Я знаю, что это довольно старый, на него ответили правильно и все. Просто хотел отдать свои 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}