禁用此弹出窗口的方法是什么:


您要Google Chrome保存此站点的密码吗?




如何使用Selenium Webdriver(Java)做到这一点?

评论

最近,我已将chrome驱动程序更新为2.28版本。

浏览器是您控制的浏览器,仅由套件使用吗?

#1 楼

请参阅“忽略ChromeDriver用户首选项”的答案。

cOpt.AddUserProfilePreference("credentials_enable_service", false);
cOpt.AddUserProfilePreference("profile.password_manager_enabled", false);


评论


在我的设置中只需要凭据_启用_服务,但是很好的答案。

– Niels van Reijmersdal
17年4月7日在9:42

对于Selenium Java,不应接受此答案,因为ChromeOptions类上没有名为“ AddUserProfilePreference”的方法。

– Ryan J. McDonough
17年4月9日在23:35

这不是公认的答案,因为Chromedriver与语言无关。我是使用Codeception的PHP开发人员,可怜,可怜我。

–吉姆·马奎尔(Jim Maguire)
17年7月21日在18:29

#2 楼

在Java中:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--disable-web-security");
options.addArguments("--no-proxy-server");

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

options.setExperimentalOption("prefs", prefs);


评论


从Selenium 3.3.1开始,在Java 8下使用selenium-chrome-driver 3.3.1起作用。感谢@Flavio Barisi,所有其他注释似乎都针对Java以外的其他语言。这可能应该是公认的答案。

– Ryan J. McDonough
17-4-9在23:36



#3 楼

Flavio Barisi所说的,加上传递给驱动程序的功能。

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");

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

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);


#4 楼

WebDriver无法与浏览器和/或OS特定的对话框进行交互。您可以在浏览器中手动进行以下更改以禁用对话框。


选择“设置”菜单选项
单击“显示高级设置…”(在页面底部)
在“密码和表单”部分中,禁用“管理密码”。
勾选框。


评论


手动我可以做,但是我不知道如何在Selenium Web驱动程序中做。

–Ganeshselvan N
17 Mar 22 '17 at 13:56

恐怕这是不可能的。 WebDriver无法与浏览器和/或OS特定的对话框进行交互。

– ECiurleo
17 Mar 22 '17 at 14:24

有时它来了,有时它不来了。我不知道如何控制它

–Ganeshselvan N
17 Mar 23 '17 at 10:48

@ECiurleo由于某些原因,我已手动禁用了“管理密码”复选框中的“保存密码”选项。但仍然会在chrome打开时显示弹出窗口。

–suprinder
17年4月4日在3:07

这只是一半。它无法与元素交互,但是从其他答案中可以看出,它可以在启动前配置Chrome,以不显示它们:-)

–寡核苷酸
17年6月23日在12:39

#5 楼

这与最新的ChromeDriver搭配使用效果很好:

_chrome.AddUserProfilePreference("credentials_enable_service", false);


评论


有趣的选择。您能否提供文档链接作为答案的一部分?

– ECiurleo
17年3月28日在10:19

#6 楼

在Ruby中:

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


#7 楼

在JavaScript中;

import webdriver from 'selenium-webdriver';
import chrome from 'selenium-webdriver/chrome';

...

const driver = new webdriver
  .Builder()
  .usingServer(url)
  .forBrowser('chrome')
  .setChromeOptions(new chrome.Options().setUserPreferences({
    "credentials_enable_service": false,
    "profile.password_manager_enabled": false
  }))
  .build();