Selenium 2.20:如何处理用户识别请求对话框

时间:2012-04-05 12:15:40

标签: java firefox selenium

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

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

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

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

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

提前感谢...

3 个答案:

答案 0 :(得分: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/");
    

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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