Selenium webdriver Selenium Javascript Webdriver:如何设置Firefox配置文件以接受自签名证书

Selenium webdriver Selenium Javascript Webdriver:如何设置Firefox配置文件以接受自签名证书,selenium-webdriver,firefox-profile,Selenium Webdriver,Firefox Profile,我正在尝试使用seleniumwebdriver测试一个使用自签名证书的站点 要通过Firefox下的测试,需要使用告知Firefox接受自签名证书的配置文件 我能够使用使用firefox-ProfileManager创建的配置文件。但是,我无法使用以编程方式创建的概要文件 有人能告诉我这里遗漏了什么吗 下面是使用firefox-ProfileManager创建的配置文件的javascript程序: var webdriver = require('selenium-webdriver'); v

我正在尝试使用
seleniumwebdriver
测试一个使用自签名证书的站点

要通过Firefox下的测试,需要使用告知Firefox接受自签名证书的配置文件

我能够使用使用
firefox-ProfileManager
创建的配置文件。但是,我无法使用以编程方式创建的概要文件

有人能告诉我这里遗漏了什么吗

下面是使用firefox-ProfileManager创建的配置文件的
javascript
程序:

var webdriver = require('selenium-webdriver');
var firefox   = require('selenium-webdriver/firefox');

var profile   = new firefox.Profile('/path/to/firefox/profile');
var browser   = new firefox.Driver(new firefox.Options().setProfile(profile));

browser.get('https://self-signed.badssl.com/');
browser.quit();
下面是使用代码创建的配置文件的
javascript
程序:

var webdriver = require('selenium-webdriver');
var firefox   = require('selenium-webdriver/firefox');

var profile   = new firefox.Profile();
profile.setAcceptUntrustedCerts(true);
profile.setAssumeUntrustedCertIssuer(false); // `true` didn't work too
var browser   = new firefox.Driver(new firefox.Options().setProfile(profile));

browser.get('https://self-signed.badssl.com/');
browser.quit();
第二个程序的错误如下:

$ node test-firefox-profile.js
/user/ws/node_modules/selenium-webdriver/lib/promise.js:654
    throw error;
    ^

WebDriverError: Error loading page
    at WebDriverError (/user/ws/node_modules/selenium-webdriver/lib/error.js:27:10)
    at Object.throwDecodedError (/user/ws/node_modules/selenium-webdriver/lib/error.js:477:11)
    at parseHttpResponse (/user/ws/node_modules/selenium-webdriver/lib/http.js:386:15)
    at /user/ws/node_modules/selenium-webdriver/lib/http.js:328:11
    at process._tickCallback (node.js:369:9)
From: Task: WebDriver.navigate().to(https://self-signed.badssl.com/)
    at Driver.schedule (/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:414:17)
    at Navigation.to (/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:1042:25)
    at Driver.get (/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:832:28)
    at Object.<anonymous> (/user/ws/test-firefox-profile.js:9:9)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
$node test-firefox-profile.js
/user/ws/node_modules/selenium webdriver/lib/promise.js:654
投掷误差;
^
WebDriverError:加载页面时出错
在WebDriverError(/user/ws/node_modules/selenium webdriver/lib/error.js:27:10)
在Object.throwDecodedError(/user/ws/node_modules/selenium webdriver/lib/error.js:477:11)
在parseHttpResponse(/user/ws/node_modules/selenium webdriver/lib/http.js:386:15)
at/user/ws/node_modules/selenium webdriver/lib/http.js:328:11
在进程中调用(node.js:369:9)
From:Task:WebDriver.navigate().to(https://self-signed.badssl.com/)
在Driver.schedule(/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:414:17)
在Navigation.to(/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:1042:25)
在Driver.get(/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:832:28)
反对。(/user/ws/test firefox profile.js:9:9)
在模块处编译(Module.js:409:26)
在Object.Module.\u extensions..js(Module.js:416:10)
在Module.load(Module.js:343:32)
在Function.Module.\u加载(Module.js:300:12)
位于Function.Module.runMain(Module.js:441:10)
启动时(node.js:139:18)
当我问另一个问题时,我偶然发现了这个问题。最终我找到了答案

对我有效的方法是使用,而不是尝试使用:

var webdriver=require('selenium-webdriver'),
firefox=require('selenium-webdriver/firefox'),
驱动程序=null,
profile=newfirefox.profile();
profile.setAcceptUntrustedCerts(true);
profile.setAssumeUntrustedCertIssuer(false);
var opts=newfirefox.Options();
选择设置配置文件(配置文件);
var builder=new webdriver.builder().forBrowser('firefox');
builder.setFirefoxOptions(opts);
driver=builder.build();
司机,上车https://www.google.com');
driver.quit();
当然,在中设置并将其传递给构建器之前,可以使用的所有方法

请注意,构建器仍将返回一个
firefox.Driver的实例,这对我来说很有效。

driver=new webdriver.Builder()。具有以下功能({'browserName':'firefox',acceptSslCerts:true,acceptsecurecerts:true})

嗨@Younes,你找到解决办法了吗?我也有同样的问题,不,我没有。如问题中所述,我可以使用ProfileManager创建的概要文件获得相同的结果。由于我无法解决这个问题,我现在回到预定义的配置文件。您好@Younes,请使用我的ff和phantomjs解决方案查看此链接。也许会有帮助。它给了我error profile=new firefox.profile();^TypeError:firefox.Profile不是一个构造函数,我想firefox.Profile已经被删除了-请参阅-应该使用
.setFirefoxOptions