如何使用Selenium设置私有代理?

时间:2015-06-05 20:10:44

标签: java firefox selenium proxy

我已经尝试了几天使用Firefox在Selenium中设置私有代理(带身份验证)。然而,无论我做什么,我都没有成功。

目前,我尝试了以下两种方法,在这两种方法中,Firefox通常都会启动而没有任何代理

        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyHost + proxyPort);
        proxy.setSocksUsername(proxyUsername); 
        proxy.setSocksPassword(proxyPass);
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability(CapabilityType.PROXY, proxy); 



        WebDriver driver = new FirefoxDriver(cap);

        driver.get("http://google.com");

我也尝试了以下内容:

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("network.proxy.type", 1);
    profile.setPreference("network.proxy.http", proxyHost);
    profile.setPreference("network.proxy.http_port", proxyPort);
    profile.setPreference("network.proxy.http", "user:pass@1.1.1.1");
    profile.setPreference("network.proxy.http_port", proxyPort);

    WebDriver driver = new FirefoxDriver(profile);

    driver.get("http://google.com");

如何在Selenium中使用Firefox设置http私有代理(用户名和密码)?

我正在使用Java。

由于

3 个答案:

答案 0 :(得分:0)

您可以尝试使用browsermob proxy。 在这里,您可以找到example

答案 1 :(得分:0)

寻找解决方案:

proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': PROXY_HOST,
    'socksUsername': 'name',
    'socksPassword': 'pass'
    })

driver = webdriver.Firefox(proxy=proxy)

答案 2 :(得分:0)

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int h = 4;
        int w = 2;
        int i, j;

        int **arr = (int**)malloc(sizeof(int*) * h);
        arr[0] = (int*)malloc(sizeof(int) * w * h);

        for (i=1; i<h; i++)
        {
                arr[i] = arr[0] + (w*i);
        }

        int count = 0;
        for (i=0; i<h; i++)
        {
                for (j=0; j<w; j++)
                {
                        arr[i][j] = count++;
                }
        }


        for (i=0; i<h; i++)
        {
                for (j=0; j<w; j++)
                {
                        printf("Array[%d][%d] = %d ", i, j, arr[i][j]);
                }
                printf("\n");
        }

        for (i=0; i<h; i++)
        {
                free(arr[i]);
        }

        free(arr);

        /*printf("\nAfter freeing the array it becomes:\n");
        for (i=0; i<h; i++)
        {
                for (j=0; j<w; j++)
                {
                        printf("Array[%d][%d] = %d ", i, j, arr[i][j]);
                }
                printf("\n");
        }*/

}

当我将Luminati代理用于Selenium时,这里是my sample code