Firefox通过WebRequest验证代理

问题描述

我正在尝试使用带专用代理的Firefox运行Selenium测试。 我在使用代理身份验证时遇到麻烦。 在没有headless模式的情况下,我可以在Java中使用Robot对代理进行身份验证。 现在,我想在Firefox中以headless模式运行。 我用https://stackoverflow.com/questions/55522874/how-to-handle-proxy-authentication-in-firefox-with-self-created-extension-using来引用,但这对我不起作用。

我的代码

background.js

var config = {
    mode: "fixed_servers",rules: {
      singleProxy: {
        scheme: "http",host: "xx.xx.xx.xx",port: parseInt("xxxxx")
      },bypassList: []
    }
  };

firefox.proxy.settings.set({value: config,scope: "regular"},function() {});

function callbackFn(details) {
return {
    authCredentials: {
        username: "xxxxx",password: "xxxxx"
    }
};
}

firefox.webRequest.onAuthrequired.addListener(
        callbackFn,{urls: ["<all_urls>"]},['blocking']
);

manifest.json

{
  "version": "1.0.0","manifest_version": 2,"name": "Firefox Proxy | (Proxy Connector)","permissions": [
    "proxy","tabs","unlimitedStorage","storage","<all_urls>","webRequest","webRequestBlocking"
  ],"background": {
    "scripts": ["background.js"]
  }
}

我用上面的2个文件创建了文件夹扩展名。之后,我将其压缩并重命名为extension.xpi

加载到Java:

        System.setProperty("webdriver.gecko.driver",path);
        File extension = new File("./extension.xpi");
        FirefoxProfile profile = new FirefoxProfile();
        profile.addExtension(extension);
        profile.setPreference("extensions.firebug.onByDefault",true);
        profile.setPreference("xpinstall.signatures.required",false);
        FirefoxOptions options = new FirefoxOptions();
        options.setBinary(new FirefoxBinary());
        options.setProfile(profile);
        WebDriver driver = new FirefoxDriver(options);

扩展名文件似乎有错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...