【发布时间】:2021-10-07 19:19:44
【问题描述】:
我使用 java、selenium。 如何在 chrome 或 firefox 中使用登录名和密码对代理进行身份验证。 AutoIt 选项或浏览器的任何扩展不适合,对整个系统使用代理也不是一个选项,因为同时启动具有不同代理的多个浏览器。 据我所知,selenium 没有为此提供工具。
【问题讨论】:
标签: java selenium selenium-chromedriver geckodriver
我使用 java、selenium。 如何在 chrome 或 firefox 中使用登录名和密码对代理进行身份验证。 AutoIt 选项或浏览器的任何扩展不适合,对整个系统使用代理也不是一个选项,因为同时启动具有不同代理的多个浏览器。 据我所知,selenium 没有为此提供工具。
【问题讨论】:
标签: java selenium selenium-chromedriver geckodriver
我遇到了类似的情况,我设法让它工作的唯一方法是使用这个扩展 - https://www.crx4chrome.com/crx/1446/。
这是一个代码示例。这不是 JAVA,但它应该给你的想法
if (proxy.Credentials != null)
{
proxyIpPort = $"{proxy.Address.Host}:{proxy.Address.Port}";
var creds = proxy.Credentials as NetworkCredential;
proxyLogin = creds?.UserName;
proxyPassword = creds?.Password;
options.AddExtension(Path.Combine(PathHelper.AssemblyDirectory, "Resources", "extension_2_0_0_0.crx"));
}
var driver = new ChromeDriver(service, options);
if (proxyLogin != null)
{
driver.WaitForElement(By.Id("login"), "Proxy login").SendKeys(proxyLogin);
driver.WaitForElement(By.Id("password"), "Proxy password").SendKeys(proxyPassword);
driver.WaitForElement(By.Id("save"), "Proxy save").Click();
driver.Close();
driver.SwitchTo().Window(driver.WindowHandles.First());
}
【讨论】: