Как получить настройки прокси от chromedriver в Java? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть фрагмент кода, который автоматически получает прокси-сервер, когда он создает хроматический драйвер, а затем настраивает прокси-сервер в хроматический драйвер. Есть ли способ получить этот прокси из объекта chromedriver?

Вот мой код:

public void getProxyFromDriver() {
    ChromeDriver driver = getDriver();
    //get the proxy from driver; 
    //ip, port, proxyType should be the same as the argument added when create the driver.
    MyProxy proxy;
}

private ChromeDriver getDriver() {
    System.setProperty("webdriver.chrome.driver", "chromeDriverPath");
    ChromeOptions options = new ChromeOptions();
    MyProxy proxy = getMyProxy(); //auto get proxy
    options.addArguments("--proxy-server=" + proxy.type + "://" + proxy.ip + ":" + proxy.port);
    return new ChromeDriver(options);
}

private MyProxy getMyProxy() {
    //Here is just an example, it is actually obtained randomly from the database.
    MyProxy myProxy = new MyProxy();
    myProxy.ip = "192.168.2.199";
    myProxy.port = 1090;
    myProxy.type = "SOCKS";
    return myProxy;
}

private class MyProxy {
    private String ip;
    private int port;
    private String type;
}

Если я не могу получить прокси напрямую, есть ли полезный совет, кроме добавления прокси в качестве параметра?

UPDATE:

Я пытаюсь получить прокси через следующий код:

Proxy proxy = (Proxy) driver.getCapabilities().getCapability("proxy");

Но я не могу получить прокси ip (или хост), а также порт и proxyType из возвращенного объекта proxy.

1 Ответ

0 голосов
/ 11 июля 2019

proxy является одним из нормальных желаемых возможностей селена

enter image description here

Таким образом, вы можете получить к нему доступ, вызвав driver.getCapabilities () , например:

Proxy proxy = (Proxy) driver.getCapabilities().getCapability("proxy");

Помните, что функция будет возвращать экземпляр org.openqa.selenium.Proxy, поэтому вам нужно будет либо использовать вышеуказанный класс, либо убедиться, что ваш класс MyProxy совместим с классом Selenium.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...