Selenium WebDriver 3.0.1 chromedriver.exe 2.25 --whitelisted-ips=""

Gyo*_*rgy 1 java google-chrome http-proxy selenium-chromedriver selenium-webdriver

我想要一个能够打开 chrome 浏览器并能够通过代理打开 url 的解决方案。

我决定使用以下内容:

  • Selenium WebDriver 3.0.1 与 Java 1.8.0_111-b14

  • chromedriver.exe 2.25

我面临一个奇怪的问题:

“只允许本地连接。”

请看我困惑的原因

请看我的代码:

package seleniumFiles;

import java.util.Arrays;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.DesiredCapabilities;
public class SeleniumClass {


    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "C:\\work\\selenium-java-3.0.1\\chromedriver.exe");

        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability("network.proxy.http", "93.180.7.246");
        capabilities.setCapability("network.proxy.http_port", "8080");
        capabilities.setCapability("webdriver.chrome.args", Arrays.asList("--verbose --whitelisted-ips=''"));
        WebDriver driver = new ChromeDriver(capabilities);
        driver.get("http://www.whoishostingthis.com/tools/user-agent/");

    }

}
Run Code Online (Sandbox Code Playgroud)

在cmd中运行“chromedriver.exe --verbose --whitelisted-ips=''” sais“白名单允许远程连接<''>”这似乎有效,但我无法弄清楚我在代码中做错了什么.

任何想法或建议表示赞赏。

Get*_*toX 5

的所有答案addArguments("--whitelisted-ips=''");都是错误的。这个参数需要注入 chromedriver exe,而不是 chrome。

如果您直接从代码本地使用 ChromeDriver,只需在 ChromeDriver init 之前插入以下行

    System.setProperty("webdriver.chrome.whitelistedIps", "");
Run Code Online (Sandbox Code Playgroud)

如果您远程使用它(例如 Selenium 集线器/网格),您需要在节点运行时像在命令中一样设置系统属性:

java -Dwebdriver.chrome.whitelistedIps= testClass
Run Code Online (Sandbox Code Playgroud)

或 docker 通过传递 JAVA_OPTS env

  chrome:
    image: selenium/node-chrome:3.141.59
    container_name: chrome
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=
Run Code Online (Sandbox Code Playgroud)