【发布时间】:2018-02-28 20:03:56
【问题描述】:
我花了几天时间寻找解决方案。
我有一个项目,我正在尝试为其创建 Selenium WebDriver 测试套件。本网站旨在通过 2 因素身份验证进行保护。这两个因素将用于交付证书,该证书将通过服务器进行身份验证。
目前,我们已经有了它,以便我们使用以 "https://" 开头的 url 访问服务器。当我们转到 url(在 Firefox 中)时,我们会看到一个标记为“用户标识请求”的弹出窗口,其中包含一个带有“选择证书以作为标识显示:”标签的下拉菜单。
之前,我通过转到选项->隐私和安全->证书->查看证书,选择“您的证书”选项卡,单击“导入”,浏览到“client1.p12”文件并输入密码。通过这样做,我现在可以在“选择要出示的证书……”下拉菜单中看到相应的证书。
我的问题是如何设置 Selenium WebDriver 来选择证书。上面描述的弹出窗口是一个 Windows 组件(不是 html),所以我不能简单地单击并选择证书。我也在尝试为 geckodriver 使用 headless 选项。
我能找到的最佳解决方案如下:
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
capabilities.setCapability("ssl-client-certificate-file", "<path-to-client1.p12>");
capabilities.setCapability("ssl-client-key-passphrase", "<password>");
WebDriver driver = new FirefoxDriver(capabilities);
driver.get(<url>);
不幸的是,我在最后一行“driver.get();”得到了一个“org.openqa.selenium.WebDriverException”
【问题讨论】:
标签: authentication firefox selenium-webdriver ssl-certificate