Каждый раз, когда мой webdriver проверяет вход в приложение, появляется сообщение "Вы хотите, чтобы хром сохранил ваш пароль". Есть ли способ избежать этого?
Пожалуйста, помогите.
Спасибо, Mike
Каждый раз, когда мой webdriver проверяет вход в приложение, появляется сообщение "Вы хотите, чтобы хром сохранил ваш пароль". Есть ли способ избежать этого?
Пожалуйста, помогите.
Спасибо, Mike
Вам нужно настроить следующие параметры драйвера chrome:
chromeOptions: {
prefs: {
'credentials_enable_service': false,
'profile': {
'password_manager_enabled': false
}
}
}
Я использую 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')
Просто добавьте эти настройки в свои параметры драйвера 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);
Да, я только что нашел ответ. Мне пришлось заглянуть в каталог данных пользователя Chrome и найти все доступные chromeOptions в файле настроек. Я на Centos 7, поэтому путь выглядит следующим образом:
~/.config/google-chrome/Default/Preferences
Чтобы удалить диалог сохранения пароля, в разделе конфигурации JSON chromeOptions должно быть следующее:
chromeOptions: {
prefs: {
profile: {
password_manager_enabled: false
}
}
}
Мне действительно приятно, что я наконец нашел эти варианты, однако, все еще разочаровывает то, что google или selenium не перечисляли все настраиваемые настройки.
Вы также можете запустить хронограф в режиме инкогнито, чтобы остановить появление инфобаров. Обратите внимание, что опыт будет похож на режим инкогнито. Команда будет
chrome.exe --incognito
, если вы работаете из командной строки
вы можете добавить --incognito
в массив chromeswitch для выполнения из webdriver.
Благодаря комментарию @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'
]
}
},
Чтобы обеспечить более полную картину, здесь приведена рабочая конфигурация для 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.
Я знаю, что это довольно старый, на него ответили правильно и все. Просто хотел отдать свои 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}