我使用 WatiN (2.0.10.928) 与 C# 和 Visual Studio 2008 来测试需要证书的 SSL 安全网站。当您导航到主页时,将显示“选择数字证书”对话框,要求您选择有效的证书并单击“确定”按钮。
我正在寻找一种自动选择证书的方法,以便每次执行新的测试或固定装置(并且浏览器重新启动)时,我不必手动干扰自动化测试并选择证书。我尝试过使用各种 WatiN Dialog Handler 类,甚至考虑使用 Win32 API 来自动执行此操作,但运气不佳。
我终于找到了一个解决方案,但它增加了对该解决方案的另一个依赖项(称为 AutoIT 的第三方库)。由于这个解决方案并不理想,但确实有效,并且是我能找到的最好的解决方案,我将发布该解决方案并将其标记为答案,但是我仍在寻找“开箱即用”的 WatiN 解决方案这与我的其余代码和测试装置更加一致。
感谢您的回复!
在我的情况下,我只附有一张证书,所以我必须拿起列表中唯一存在的一张证书,所以我有非常简单的DialogHandler
为此 - 如果它可以处理对话框,它只会单击按钮:
public class CertificateChoosingHandler : BaseDialogHandler
{
public override bool HandleDialog(Window window)
{
new WinButton(1, window.Hwnd).Click();
return true;
}
public override bool CanHandleDialog(Window window)
{
return window.StyleInHex == "94C808CC";
}
}
AFAIR 这个解决方案在 Windows 7 中不起作用。
EDIT:我忘记了一些有用的东西。当我发现这个解决方案在 Windows 7 中不起作用时,我在“自定义级别”中的 IE Internet 选项中发现了非常有趣的选项:当不存在证书或仅存在一个证书时,不提示选择客户端证书。因此,我已将我的网站添加到受信任的网站并编辑了设置,现在我不需要使用它DialogHandler
,但即使没有对话框出现,它仍然可以使用。如果不清楚,我写的,这里是如何在 Internet Explorer 中启用证书提示 https://ca.cern.ch/ca/Help/?kbid=031510显示证书对话框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)