ローカルマシンを介してVPNに接続し、chromeブラウザでSeleniumスクリプトを実行しようとすると、次のエラーが発生します。
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1553947986.711][WARNING]: Timed out connecting to Chrome, retrying...
[1553947990.713][WARNING]: Timed out connecting to Chrome, retrying...
[1553947998.713][WARNING]: Timed out connecting to Chrome, retrying...
[1553948014.713][WARNING]: Timed out connecting to Chrome, giving up.
[1553948016.724][WARNING]: Timed out connecting to Chrome, retrying...
[1553948020.724][WARNING]: Timed out connecting to Chrome, retrying...
[1553948028.727][WARNING]: Timed out connecting to Chrome, retrying...
[1553948044.730][WARNING]: Timed out connecting to Chrome, giving up.
これは、VPNなしでスクリプトを実行したい場合にのみ発生します。VPNなしでスクリプトは正常に機能しています。Firefoxブラウザーで上記の問題が発生しない場合
私も先週からこの問題に直面していました。私はたくさん検索し、この問題を解決するためにさまざまなアプローチを試しました以下のコード(疑似コード)が問題の解決に役立ちました。私のアプローチ:
プロセスインスタンスを閉じます(process.destroy())
try { process = new ProcessBuilder("path of the chromedriver.exe").start(); } catch (IOException e1) { e1.printStackTrace(); } System.setProperty("webdriver.chrome.driver", "path of the chromedriver.exe"); ChromeOptions options = new ChromeOptions(); try { driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"), options); } catch (MalformedURLException e) { e.printStackTrace(); } // maximize browser // delete All Cookies // page Load Timeout // implicitly Wait // navigating to the url // run the test scripts // close the driver // close the process
それがあなたの問題も解決することを願っています。問題が発生した場合はお知らせください。
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--whitelist-ip *");
chromeOptions.addArguments("--proxy-server='direct://'");
chromeOptions.addArguments("--proxy-bypass-list=*");
WebDriver driver = new ChromeDriver(chromeOptions);
ここでIPアドレスを指定することもできます。
IPv6を無効にすると、この問題は解決しました。 macOSの場合:networksetup -setv6off Wi-Fi
私はまた、hostsファイルから::1 localhost
を削除する必要がありました。