如何使用Java代码在selenium中设置Chrome浏览器的代理

Pra*_*lly 6 java proxy selenium

我正在尝试运行我的selenium java代码来测试网页.但由于网络限制,网页无法加载.当我手动设置代理并在浏览器中点击URL时,它工作正常.现在我需要在运行selenium代码时传递这些代理设置.请帮帮我.

我试过下面的代码,但它仍然显示相同的错误:

Proxy p=new Proxy();


// Set HTTP Port to 7777
p.setHttpProxy("www.abc.com:8080");

// Create desired Capability object
DesiredCapabilities cap=new DesiredCapabilities();

// Pass proxy object p
cap.setCapability(CapabilityType.PROXY, p);

// Open  firefox browser
WebDriver driver=new ChromeDriver(cap);
Run Code Online (Sandbox Code Playgroud)

小智 9

不推荐将 Capabilities 对象传递给 ChromeDriver() 构造函数。使用代理的一种方法是:

String proxy = "127.0.0.1:5000";
ChromeOptions options = new ChromeOptions().addArguments("--proxy-server=http://" + proxy);
WebDriver webDriver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)


Pra*_*lly 7

问题已通过以下代码解决 -

Proxy proxy = new Proxy(); 
proxy.setHttpProxy("yoururl:portno"); 
proxy.setSslProxy("yoururl:portno"); 

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("proxy", proxy); 

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

capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

driver = new ChromeDriver(capabilities);
Run Code Online (Sandbox Code Playgroud)

  • 不推荐将 Capabilities 对象传递给 ChromeDriver() 构造函数。 (2认同)

sgr*_*lon 7

将 Capabilities 对象传递给 ChromeDriver() 构造函数是deprecated. 你可以在这里找到新的官方文档。

ChromeOptions chromeOptions = new ChromeOptions();

Proxy proxy = new Proxy();
proxy.setAutodetect(false);
proxy.setHttpProxy("http_proxy-url:port"); 
proxy.setSslProxy("https_proxy-url:port");
proxy.setNoProxy("no_proxy-var");

chromeOptions.setCapability("proxy", proxy); 
driver = new ChromeDriver(chromeOptions);
Run Code Online (Sandbox Code Playgroud)