42

有什么方法可以设置firefox的代理设置吗?我在这里找到了有关 FoxyProxy 的信息,但是当 Selenium 工作时,插件在窗口中未激活。

4

13 回答 13

52

的值network.proxy.http_port应该是整数(不应该使用引号)并且network.proxy.type应该设置为 1(ProxyType.MANUAL,手动代理设置)

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", 3128);
WebDriver driver = new FirefoxDriver(profile);
于 2011-03-02T10:42:39.643 回答
23

我刚刚在这个问题上玩了几天,我很难找到 HTTPS 的答案,所以这是我对 Java 的看法:

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("network.proxy.type", 1);
    profile.setPreference("network.proxy.http", "proxy.domain.example.com");
    profile.setPreference("network.proxy.http_port", 8080);
    profile.setPreference("network.proxy.ssl", "proxy.domain.example.com");
    profile.setPreference("network.proxy.ssl_port", 8080);
    driver = new FirefoxDriver(profile);

这里的陷阱:只输入域而不是http://proxy.domain.example.com,属性名称是.ssl而不是.https

我现在尝试让它接受我的自签名证书变得更加有趣......

于 2012-08-09T11:56:18.680 回答
21

查看文档页面

调整现有的 Firefox 配置文件

您需要更改“network.proxy.http”和“network.proxy.http_port”配置文件设置。

FirefoxProfile profile = new FirefoxProfile();
profile.addAdditionalPreference("network.proxy.http", "localhost");
profile.addAdditionalPreference("network.proxy.http_port", "3128");
WebDriver driver = new FirefoxDriver(profile);
于 2010-07-16T02:25:50.110 回答
12

只是添加到上面给出的解决方案。,

为“network.proxy.type”添加可能性列表(整数值)。

0 - Direct connection (or) no proxy. 

1 - Manual proxy configuration

2 - Proxy auto-configuration (PAC).

4 - Auto-detect proxy settings.

5 - Use system proxy settings. 

因此,根据我们的要求,“network.proxy.type”值应设置如下。

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
WebDriver driver = new FirefoxDriver(profile);
于 2015-04-28T11:05:32.997 回答
9

WebDriver API 已更改。当前设置代理的片段是

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", "3128");
WebDriver driver = new FirefoxDriver(profile);
于 2010-12-29T11:53:32.390 回答
5

这是一个使用DesiredCapabilities. 我用它来将硒测试泵入 jmeter。(只对 HTTP 请求感兴趣)

import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

String myProxy = "localhost:7777";  //example: proxy host=localhost port=7777
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY,
                           new Proxy().setHttpProxy(myProxy));
WebDriver webDriver = new FirefoxDriver(capabilities); 
于 2013-04-23T17:40:25.393 回答
5

如果您有自动配置 URL -

        FirefoxProfile firefoxProfile = new FirefoxProfile();
        firefoxProfile.setPreference("network.proxy.type", 2);
        firefoxProfile.setPreference("network.proxy.autoconfig_url", "http://www.etc.com/wpad.dat");
        firefoxProfile.setPreference("network.proxy.no_proxies_on", "localhost");
        WebDriver driver = new FirefoxDriver(firefoxProfile);
于 2013-04-03T11:39:29.610 回答
4

对于基于 PAC 的网址

 Proxy proxy = new Proxy();
 proxy.setProxyType(Proxy.ProxyType.PAC);
 proxy.setProxyAutoconfigUrl("http://some-server/staging.pac");
 DesiredCapabilities capabilities = new DesiredCapabilities();
 capabilities.setCapability(CapabilityType.PROXY, proxy);
 return new FirefoxDriver(capabilities);

我希望这会有所帮助。

于 2012-02-21T14:25:46.017 回答
3

根据最新的文档

from selenium import webdriver

PROXY = "<HOST:PORT>"
webdriver.DesiredCapabilities.FIREFOX['proxy'] = {
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",

}

with webdriver.Firefox() as driver:
    # Open URL
    driver.get("https://selenium.dev")
于 2020-06-23T07:00:54.133 回答
2

Firefox Proxy: JAVA

String PROXY = "localhost:8080";

org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();

proxy.setHttpProxy(PROXY)setFtpProxy(PROXY).setSslProxy(PROXY);

DesiredCapabilities cap = new DesiredCapabilities();

cap.setCapability(CapabilityType.PROXY, proxy); 

WebDriver driver = new FirefoxDriver(cap);
于 2015-04-14T22:01:40.843 回答
0
FirefoxProfile profile = new FirefoxProfile();
String PROXY = "xx.xx.xx.xx:xx";
OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy();
proxy.HttpProxy=PROXY;
proxy.FtpProxy=PROXY;
proxy.SslProxy=PROXY;
profile.SetProxyPreferences(proxy);
FirefoxDriver driver = new FirefoxDriver(profile);

它适用于 C#

于 2012-05-09T09:44:32.830 回答
0

还有另一种解决方案,我寻找,因为这样的代码有问题(它在 Firefox 中设置了系统代理):

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", "8080");
driver = new FirefoxDriver(profile);

我更喜欢这个解决方案,它强制在 Firefox 中手动设置代理。为此,请使用 org.openqa.selenium.Proxy 对象来设置 Firefox:

FirefoxProfile profile = new FirefoxProfile();
localhostProxy.setProxyType(Proxy.ProxyType.MANUAL);
localhostProxy.setHttpProxy("localhost:8080");
profile.setProxyPreferences(localhostProxy);
driver = new FirefoxDriver(profile);

如果它可以帮助...

于 2011-12-20T08:25:48.897 回答
-4

首选项 -> 高级 -> 网络 -> 连接(配置 Firefox 连接到 Internet 的方式)

于 2010-05-23T00:01:08.393 回答