【问题标题】:geckodriver windows authenticationgeckodriver windows 身份验证
【发布时间】:2017-06-27 21:11:29
【问题描述】:

我正在升级我的测试以使用 Selenium 3.4.0。使用最新的 chrome 驱动程序运行测试我没有问题,当我将测试配置为使用 geckodriver 时,我收到一个 windows Authentication Required 对话框:

screenshot

这是我对 FirefoxDriver 的配置:

System.setProperty("webdriver.gecko.driver", "./drivers/geckodriver.exe");
driver = new FirefoxDriver();

控制台输出显示如下:

1498596765531   geckodriver INFO    Listening on 127.0.0.1:40330
1498596766187   geckodriver::marionette INFO    Starting browser \\?
\C:\Program Files (x86)\Mozilla Firefox\firefox.exe with args ["-
marionette"]
:
 no] Stack trace: FileUtils_getDir()@resource://gre/modules/FileUtils.jsm:70 
< FileUtils_getFile()@resource://gre/modules/FileUtils.jsm:42 < 
validateBlocklist()@resource://gre/modules/AddonManager.jsm:674 < 
startup()@resource://gre/modules/AddonManager.jsm:837 < 
startup()@resource://gre/modules/AddonManager.jsm:3145 < 
observe()@resource://gre/components/addonManager.js:65
1498596767838   Marionette  INFO    Listening on port 50529
JavaScript error: resource://gre/modules/AddonManager.jsm, line 2572: 
NS_ERROR_NOT_INITIALIZED: AddonManager is not initialized
Jun 27, 2017 1:52:48 PM org.openqa.selenium.remote.ProtocolHandshake 
createSession
INFO: Detected dialect: W3C

我不确定为什么会收到这个 javascript 错误:

JavaScript error: resource://gre/modules/AddonManager.jsm, line 2572: NS_ERROR_NOT_INITIALIZED: AddonManager is not initialized

geckodriver 导致 Windows 身份验证对话框出现的任何原因?

该网站是一个使用 kerberos 进行身份验证的内部应用程序。

【问题讨论】:

  • 请发布 geckodriver 和 firefox 浏览器的版本。另外,为什么要混合 chromedriver 和 firefox(第一行)?
  • GeckoDriver v16.1 和 Firefox 54.0。 MikeJRamesey56,很抱歉造成混乱,复制和粘贴错误:)。我在上面编辑了我的帖子。
  • 你能用 Gecko v0.17.0 试试吗?它提到了这一点 - “增加 network.http.phishy-userpass-length 首选项的长度将导致 Firefox 在导航到 URL 中包含用户名或密码的网站时不提示”。不过没试过
  • 我升级到gecko驱动v0.18.0,问题已经解决了。

标签: selenium geckodriver


【解决方案1】:

我能够通过升级到 Selenium 3.6.0 来解决这个问题,然后将以下首选项传递给驱动程序:

FirefoxProfile ffprofile = new FirefoxProfile();
String sitelist = "mydomain.com, https://myotherdomain.com";
ffprofile.setPreference("browser.tabs.remote.force-enable",true);
ffprofile.setPreference("network.negotiate-auth.trusted-uris", sitelist);
ffprofile.setPreference("network.negotiate-auth.delegation-uris", sitelist);
ffprofile.setPreference("network.automatic-ntlm-auth.trusted-uris", sitelist);
FirefoxOptions options = new FirefoxOptions();
options.setProfile(ffprofile);

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 2013-10-30
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2023-03-22
    • 1970-01-01
    • 2012-09-26
    相关资源
    最近更新 更多