neX*_*Xus 15 java internet-explorer selection client-certificates selenium-iedriver
我正在尝试使用Java和Selenium来测试需要客户端证书的网站.当我浏览到我的网站时,我会得到一个类似下面的弹出窗口,以选择正确的证书.
我的要求如下:
理想情况下弹出窗口从未显示过; 即,解决方案将涉及调用某些API或设置一些配置以固定要使用的正确证书.
我尝试了一个基于使用SikuliX可视化检测正确证书的解决方案(这确实有效),但我想知道是否有更好的解决方案不依赖于视觉检测弹出窗口.如果微软决定改变这个弹出窗口的外观,那么在Windows的多个版本中出现故障的可能性较小,这是未来的证据.
我有的另一个想法(但我不知道如何/是否可能)是删除所有已安装的证书,除了一个,以便永远不会显示弹出窗口:
有谁知道如何做到这一点(在Java中,可能会调用CLI命令)?
是否可以启动(使用Selenium Java)一个只知道我需要的单一证书的Internet Explorer窗口?
是否可以在Internet Explorer中为给定域设置默认证书?
我不能肯定地说,但如果硒不可能做到这一点,我不会感到惊讶。
这个问题并没有让我充满希望: Selenium can't deal with Confirm Certificate popup in IE
你离开网页越远,转向本机浏览器和操作系统控制,Selenium 就越无能为力。
正如链接问题的唯一答案所述:您可以禁用浏览器中的弹出窗口,这可能是也可能不是一个可行的解决方案。
如果您不想走这条路,人们通常会求助于 Java 机器人来处理 selenium 驱动程序无法完成的事情,例如与打印对话框和其他此类控件进行交互。
请参阅 mouseMove、mousePress、mouseRelease 您将调用其中的每一个,为 mouseMove 提供按钮位置。 https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html