Selenium chrome driver socks代理配置

时间:2014-03-18 13:49:19

标签: selenium configuration proxy socks selenium-chromedriver

我在为chrome驱动程序设置socks代理时遇到麻烦

Proxy proxy = new Proxy();
proxy.setProxyType(Proxy.ProxyType.MANUAL);
proxy.setAutodetect(false);
proxy.setSocksProxy(ProxyHelper.PROXY_HOST + ":" + ProxyHelper.PROXY_PORT);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver chromeDriver = new ChromeDriver(capabilities);

此配置提供:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot parse capability: proxy from unknown error: proxyType is 'manual' but no manual proxy capabilities were found

我认为它希望我填写http,ftp和ssl代理。但是,如果我填补他们;错误没有提高,但我的代理也无法正常工作,因为它试图像http代理而不是袜子代理一样使用它。

我该怎么办?

3 个答案:

答案 0 :(得分:20)

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--proxy-server=socks5://" + host + ":" + port);
    WebDriver driver = new ChromeDriver(options);

答案 1 :(得分:8)

您是否尝试使用此铬arg?

--proxy-server="socks5://host:port"

答案 2 :(得分:0)

from selenium.webdriver.firefox.options import Options as ff_options
random_proxy = "142.54.61.98:120"
options = ff_options()
firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['proxy'] = {
    "proxyType": "MANUAL",
    "httpProxy": random_proxy,
    "ftpProxy": random_proxy,
    "sslProxy": random_proxy
}
profile = webdriver.FirefoxProfile()
profile.set_preference("media.peerconnection.enabled", False)
profile.set_preference("media.navigator.enabled", False)
# profile.set_preference("general.useragent.override", user_agent)
profile.update_preferences()

driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_profile=profile,
                           firefox_options=options)