web-dev-qa-db-ja.com

Chromeコードを使用してSeleniumでJavaブラウザのプロキシを設定する方法

Selenium Javaコードを実行してWebページをテストしようとしています。ただし、ネットワークの制限により、ウェブページは読み込まれません。プロキシを手動で設定し、ブラウザで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);
6

問題は以下のコードで解決されます-

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);
4

CapabilitiesオブジェクトをChromeDriver()コンストラクターに渡すことは非推奨です。プロキシを使用する1つの方法は次のとおりです。

String proxy = "127.0.0.1:5000";
ChromeOptions options = new ChromeOptions().addArguments("--proxy-server=http://" + proxy);
WebDriver webDriver = new ChromeDriver(options);
3
user3052604
DesiredCapabilities dc;
dc = DesiredCapabilities.chrome();              
System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "9090");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("https.proxyPort", "9090");                      
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("--disable-extensions");
dc.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(dc);
3
Barney

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);
1
sgrillon

別の方法:

        boolean useProxy = true;
        ChromeOptions options = new ChromeOptions().addArguments(
                '--headless',
                '--no-sandbox',
                '--disable-extensions',
                '--proxy-bypass-list=localhost');
        if (useProxy) {
            options.addArguments("--proxy-server=http://ProxyHost:8080");
        }

        WebDriver driver = new ChromeDriver(options);

https://peter.sh/experiments/chromium-command-line-switches/ を参照してくださいChromeスイッチ

1
Slavik