当前位置: 首页 > 知识库问答 >
问题:

无法使用Firefox WebDrive设置代理端口

傅宏恺
2023-03-14

这是我用来通过SeleniumWebDriver(Java)启动Firefox的代码:

private FirefoxDriver getfox(String pr) {
    String geckoPath = "/opt/driver";
    String browserPath = "/opt/browser";
    String h = pr.split(":")[0];
    String p = pr.split(":")[1];

    System.setProperty("webdriver.firefox.marionette", geckoPath);

    FirefoxProfile fp;
    fp = new FirefoxProfile();

    System.out.println("setting proxy " + h + ", port " + p);
    fp.setPreference("network.proxy.http", h);
    fp.setPreference("network.proxy.http_port", p);

    FirefoxOptions fo = new FirefoxOptions();
    fo.setProfile(fp);
    fo.setBinary(browserPath);

    FirefoxDriver driver = new FirefoxDriver(fo);

    driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
    driver.manage().timeouts().pageLoadTimeout(30,TimeUnit.SECONDS);
    driver.manage().timeouts().setScriptTimeout(30,TimeUnit.SECONDS);

    return driver;
}

但是,当我在已启动的浏览器中输入about:config并检查设置时,只更改了代理主机。http\u端口设置为0。当我通过导航检查我的IP时,例如。,

Webdriver driver = getfox("host.proxy.server:port");
String address = "https://www.find-ip.net";
//String address = "http://www.find-ip.net";
System.out.println("navigating to " + address);
driver.get(address);
System.out.println("searching elements");
String selector = ("div.ipcontent.pure-u-13-24");

List<WebElement> elems = driver.findElements(By.cssSelector(selector));

for (WebElement w : elems) {
    System.out.println(w.getText());
}

超文本传输协议://www.find-ip.net然后我看到我的真实IP地址。我传递的值是正确的。我在HtmlUnit驱动程序中设置代理没有问题。

涉及的版本包括:

  • 硒3.6.0

有什么我需要改变的吗?

共有1个答案

鲍建业
2023-03-14

建议使用gecko驱动程序v0.19.0使用Firefox 55.0(及更高版本)。

更新浏览器并重新尝试。

 类似资料:
  • 我正在使用vue.js作为UI和node.js作为服务器的Web应用程序。Vue运行在端口上,Node.js运行在上,所以为了进行API调用,我使用的代理不能按预期工作。 下面的代码在我的用于代理: 下面是我的主页文件,它将使用 因为我是vue的新手。js,我不知道出了什么问题。 编辑这是我得到的错误: 代理错误:无法将请求/api/v1/类别从localhost:8080代理到http://lo

  • 我正在尝试将browsermob设置为在我的selenium项目中工作。我正在寻找一种使用ChromeOptions来设置代理的方法,但是所有的资源都告诉我要使用ChromeOptions来处理其他的事情,然后在实例化一个新的ChromeDriver实例之前将它转换为DesiredCapabilities。 这是我的代码: 我使用的是maven存储库中的Webdriver版本2.44。这是我得到的

  • 问题内容: 我正在尝试设置HTTP客户端,以便它使用代理,但是我不太明白该怎么做。该文档有多个对“代理”的引用,但是似乎没有一个功能允许定义代理。我需要的是这样的: 知道如何在Go中执行此操作吗? 问题答案: lukad是正确的,您可以设置环境变量,如果这样做,Go将默认使用它。 重击: 走: 您还可以构造自己的http.Client,无论环境如何配置,该客户端都必须使用代理: 如果您不能依赖环境

  • 本文向大家介绍使用nginx设置代理服务器,包括了使用nginx设置代理服务器的使用技巧和注意事项,需要的朋友参考一下 nginx可以利用其反向代理的功能来进行负载均衡的实现,同时也可以使用其正向代理的功能设置代理服务器,比如在内网的环境中,在可以连接外网的机器上运行nginx作为代理服务器,其他机器通过设定此台机器的IP和port即可通过其连接上网,本文使用nginx官方镜像,通过如下步骤即可简

  • 我使用Kong Bitnami GCP堆栈(版本2.2.0)作为API网关:https://console.cloud.google.com/marketplace/product/bitnami-launchpad/kong 它在HTTP端口8000和HTTPS端口8443(默认配置)下运行良好。但是,当我尝试将生产环境的HTTP/HTTPS侦听端口更改为80/443时,请遵循以下链接:http

  • 我试过很多次了,但什么也没有。 这是类的代码,它应该设置警报,但在指定的时间和日期没有发生任何事情。