具有企业代理身份验证功能的 Chrome 无头浏览器无法正常工作

2023-12-05

我正在尝试运行位于公司代理后面的 Chrome 无头浏览器。我尝试了下面的代码。但却无法穿越它。

public class HeadlessChrome 
{
    WebDriver driver;

    @Test
    public void createChromeDriverHeadless() throws InterruptedException
    {
        System.setProperty("webdriver.chrome.driver", "D:\\LocalData\\workspace\\Drivers and Libraries\\driver\\chromedriver.exe");

        ChromeOptions chromeOptions = new ChromeOptions();

        Proxy proxy = new Proxy();
        proxy.setHttpProxy("http://user:pwd@server:port");
        proxy.setSslProxy("http://user:pwd@server:port");

//      chromeOptions.setCapability("proxy", proxy);
        chromeOptions.addArguments("--proxy-server=user:pwd@server:port");
        chromeOptions.addArguments("--headless");
        chromeOptions.addArguments("--disable-gpu");
        chromeOptions.addArguments("start-maximized");  

        driver = new ChromeDriver(chromeOptions);
        driver.get("http://seleniumhq.org");       

        Thread.sleep(5000);
        System.out.println("Title : " + driver.getTitle());
        assertTrue(driver.findElement(By.id("q")).isDisplayed());
        driver.quit();
    }
}

请帮帮我。


如果您没有使用headless您可以使用以下链接中的方法

用户:使用selenium传递代理

但目前不允许使用无头扩展。所以现在你的选择是添加另一个代理

chrome -> (intermediate proxy w/o auth) -> corporate proxy w/ auth -> internet

一种选择是使用polipo

https://www.irif.fr/~jch/software/polipo/

具有以下配置

parentAuthCredentials=username:password
parentProxy=corporateproxy:port

然后使用

chromeOptions.addArguments("--proxy-server=http://polipoproxy:port");

默认是127.0.0.1:8123不要在 polipo 配置中覆盖。

您可以使用的其他选项

  • 使用squid代理代替polipo

  • 使用 python 或 Node 或您熟悉的任何其他语言编写您自己的代理转发器

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有企业代理身份验证功能的 Chrome 无头浏览器无法正常工作 的相关文章

随机推荐