如果输入用户名和密码,则使用硒自动化为什么不 Chrome浏览器显示像常规一样保存凭据的选项 实践。
如前面的回答所述,WebDriver 的新实例会打开新的浏览器窗口,没有以前的 cookie 等。
你能做的是:
-
当您第一次启动WebDriver并打开登录页面时,使用selenium输入凭据,确保您选中"记住详细信息"复选框。
-
现在,一旦您登录,您就可以使用以下方法从浏览器获取cookie:
driver.manage().getCookies();
-
例如,您可以获取所有cookie并将它们保存在文本文件中。
-
下次打开新浏览器时,在打开页面之前,加载您之前保存的cookie。
driver.manage().getCookies().add(cookie);
由于网络驱动程序的工作方式,它会删除所有可能意外失败的信息 cookie/缓存,您会注意到它不会打开普通浏览器,它通常是浏览器的轻量级版本。
如果您希望它保存cookie和缓存,您将A(必须在代码中指定这一点,B(您必须围绕已保存密码的事实进行测试,因此,如果您将测试移动到另一台计算机上,浏览器缓存将有所不同,您的测试将不再起作用。
实际上,网络驱动程序在没有cookie的情况下打开浏览器。 如果您需要保存您的 cookie,您可以使用以下命令,
driver.manage().getCookieNamed(String arg);
driver.manage().getCookies();
driver.manage().getCookies().add(cookie);
这三个都用于获取饼干和保存饼干。
或
如果浏览器显示弹出窗口,保存用户名和密码使用可以使用这个,
var options = new ChromeOptions();
options.AddArguments("chrome.switches", "--disable-extensions --disable-extensions-file-access-check --disable-extensions-http-throttling --disable-infobars --enable-automation --start-maximized");
options.AddUserProfilePreference("credentials_enable_service", false);
options.AddUserProfilePreference("profile.password_manager_enabled", false);
var driver = new ChromeDriver(options);