0

我是 Selenium 的新手,但有一些简单的网站自动化工作。这是我无法弄清楚的:我有一个使用用户证书来验证用户的网站。我发出以下...

    WebDriver driver = new FirefoxDriver();
    driver.get("https://xt01:9100/owf/");

当网站出现时,用户识别请求对话框也会询问我想“登录”使用哪个证书。我无法抓住该对话框来指定证书并点击按钮,因此显示的第一个屏幕是“未授权”屏幕(因为我没有指定 1)任何证书或 2)正确证书)

问)我应该如何“抓住”这个对话框?Selenium IDE 不注册对话框(似乎没有“看到”它,因此不包括任何点击)

有一个选项(工具-选项-高级-加密)sez:“当服务器请求我的个人证书时”,选项是“自动选择一个”或“每次都问我”。在启动的 Firefox 实例上,我将其设置为“自动选择一个”并单击,但是在下次启动时不会“记住”(它被重置为“每次都问我”),因此我需要能够捕获用户识别请求对话框并在开始测试之前对其进行处理....如何?

提前致谢...

4

3 回答 3

2

到目前为止,我没有时间尝试它,但我认为它应该有所帮助:

  • 创建新的 Firefox 配置文件并将其命名为熟悉的名称 - 例如selenium
  • 在此配置文件中,安装给定的证书并让 FF 记住您的决定
  • 创建 FireFoxDriver 的新实例时,请尝试以下操作:

    ProfilesIni profile = new ProfilesIni();
    FirefoxProfile ffprofile = profile.getProfile("selenium");
    WebDriver driver = new FirefoxDriver(ffprofile);
    driver.get("https://xt01:9100/owf/");
    
于 2012-04-05T13:54:12.773 回答
2

prefs.js可以通过使用 Firefox 33.0在您的个人资料中指定证书提示,user_pref("security.default_personal_cert", "Select Automatically"); 并且 selenium-webdriver-2.47.1 为我工作。

于 2016-03-30T21:34:56.487 回答
0

证书由操作系统管理,而不是浏览器。从浏览器的证书存储中删除除必要证书之外的所有证书,然后将浏览器配置为在仅存在一个证书时自动选择证书。您还可以创建浏览器配置文件并让您的程序启动此配置文件或避免通过 HTTPS 进行测试。

于 2015-05-20T02:01:52.587 回答