autoauth firefox 插件不起作用

autoauth firefox plugin didn't work

大家好。

我正在使用 Selenium WebDriver 来自动测试执行。但是在使用 HTTP base autentification 的开发站点上。我找到了 Firefox 的 AutoAuth 插件。它保存 login/password 并且不需要每次都输入凭据。

但是这个插件不保存凭据。我正在重新安装插件和 firefox,删除 cookie,但什么也没有。在这台机器上,其他用户插件可以成功运行。也许,有人有并解决了这个问题吗?

致我已经写过的插件的作者。

方式:https://login:passwd@host不要太帮忙...

您的意思是插件无法使用 webdriver 进行调用?在 webdriver 中创建配置文件和调用的简单方法。

Here 是创建 firefox 配置文件的方法。安装该加载项并保存凭据。

在 webdriver 中调用上面保存的配置文件

   ProfilesIni allProfiles = new ProfilesIni();
   FirefoxProfile profile = allProfiles.getProfile("selenium");
   WebDriver driver = FirefoxDriver(profile);

谢谢, 穆拉利

如果是 HTTP 基本身份验证,则可以在 URL 中设置凭据。请注意,它需要设置 "network.http.phishy-userpass-length" 首选项才能启用它。

这是一个使用 Selenium / Firefox / Python 的工作示例:

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("network.http.phishy-userpass-length", 255)

driver = webdriver.Firefox(profile)

driver.get("http://admin:admin@the-internet.herokuapp.com/basic_auth")

我使用非常成功的方法是设置一个嵌入式 Browsermob 代理服务器(在 Java 代码中)并注册一个 RequestInterceptor 来拦截所有传入的请求(即匹配主机 / URL 有问题的模式)。

当您有一个需要基本身份验证的请求时,add an Authorization HTTP header 具有所需的凭据('Basic ' + Base64 编码的 'user:pass' 字符串。所以对于 'foo:bar' 你应该设置值 Basic Zm9vOmJhcg==)

启动服务器,将其设置为网络代理for Selenium traffic,当发出需要身份验证的请求时,代理将添加header,浏览器将看到它,验证凭据,不需要弹出对话框。

您根本不需要处理对话框。

其他好处:

  • 这是一个纯 HTTP 解决方案,它在 所有 浏览器和操作系统上的工作方式相同。
  • 无需任何 hard-to-automate add-ons 和插件,无需任何手动干预。
  • 无需自定义配置文件、自定义首选项等
  • 您在测试代码中控制凭据,不要将它们存储在其他地方。