当前位置: 首页 > 面试题库 >

将个人SSL证书与Webdriver一起使用(Selenium 2.0)

楚承天
2023-03-14
问题内容

我正在测试一个网站,该网站需要个人SSL证书才能执行某些操作,例如登录。

我有一个使用代理设置的Webdriver(Selenium 2.0)测试:

    Proxy localhostProxy = new Proxy();
    localhostProxy.setProxyType(Proxy.ProxyType.MANUAL);
    localhostProxy.setHttpProxy("www-proxyname:port");

    FirefoxProfile profile = new FirefoxProfile();
    profile.setProxyPreferences(localhostProxy);
    driver = new FirefoxDriver(profile);

这将可以访问主页。然后,测试单击登录按钮,输入正确的凭据,然后单击提交。此时,浏览器随后进入加载状态,我认为这是因为SSL证书在我这边丢失了,因此无法连接到登录服务。

我搜索了不同的代理解决方案,发现了这一点:

    profile.setAcceptUntrustedCertificates(true);
    profile.setAssumeUntrustedCertificateIssuer(true);

所以我将其添加到我的代码中,但它似乎并没有实现我想要的功能。我想我正在寻找一种告诉WebDriver我的ssl证书在x目录中的方法,请在访问此网站时使用它。有谁知道如何做到这一点?

我的测试代码是:

@Test
public void userSignsInAndVerifiesDrawerViews(){
            driver.get("www.url.com");
            waitFor(5000);
    driver.findElement(By.xpath("//a[contains(text(), 'Sign in')]")).click();
    waitFor(3000);
    String username = "seleniumtest";
    String password = "seleniumtest1";
    driver.findElement(By.id("username")).sendKeys(username);
    driver.findElement(By.id("password")).sendKeys(password);
    driver.findElement(By.xpath("//signin")).click();
    waitFor(30000);
    String signInLinkText = driver.findElement(By.xpath("//xpath")).getText();
    assertEquals(signInLinkText, username);
}

谢谢,Beccy


问题答案:

Webdriver没有用于添加个人证书的内置机制。

如果您使用的是firefox,我发现这样做的唯一方法是创建一个firefox配置文件并将证书添加到其中。然后,您可以在运行测试时重用配置文件,或者这是我的首选,选择cert8.db和key3.db文件并将它们添加到webdriver在运行时创建的配置文件中。

我不确定如何在Java中执行此操作,但是在ruby中,我重写了FirefoxProfile的layout_on_disk方法来添加所需的额外文件。Java具有
相同的类,

因此您应该能够执行相同的操作。



 类似资料:
  • 问题内容: 我正在测试一个网站,该网站需要个人SSL证书才能执行某些操作,例如登录。 我有一个使用代理设置的Webdriver(Selenium 2.0)测试: 这将可以很好地访问主页。然后,测试单击“登录”按钮,输入正确的凭据,然后单击“提交”。此时,浏览器随后进入加载状态,我认为这是因为SSL证书在我身边丢失了,因此无法连接到登录服务。 我搜索了不同的代理解决方案,发现了这一点: 因此,我将其

  • 问题内容: 我想使用jQuery函数对REST服务进行XHR调用。基本上,这可以正常工作,但是REST服务只能通过https访问,并且要求客户端使用客户端证书进行身份验证。 如何使用jQuery的功能发送客户端证书? 问题答案: 如果请求源和目标位于同一域中,并且使用https:保护AJAX和SSL,则可以进行ssl ajax调用。但是您不能在ajax调用中进行ssl认证。

  • 问题内容: 由于Tor浏览器捆绑包只是Firefox的修补版本,因此似乎应该可以在Tor浏览器中使用。到目前为止,这是我尝试过的: 这将导致空白的Tor浏览器页面打开,并弹出消息: 无法加载Firefox配置文件。 它可能丢失或无法访问。 我知道配置文件是有效/兼容的,因为我可以使用以下命令成功启动浏览器和配置文件: 但是,我不知道如何向打开的浏览器发送命令。 我发现了类似的问题,但是我正在寻找J

  • 我正在尝试使用工作站上的Aptana Studio 3与Windows 2012服务器上托管的Bonobo Git repo通信。我遵循了无数使用开放SSL创建自签名SSL证书的指南,但仍然无法连接到Git repo。以下是我遵循的步骤: 从Win2012服务器中创建自签名SSL证书 失败后,我尝试按照此指南创建自己的证书颁发机构,但未能找到允许windows 2012服务器实际使用Bonobo

  • 更新:不幸的是,我没能用自定义TrustStore做到这一点。我用installCert.java安装了证书。

  • 我是Python和Selenium的初学者,我不知道我的代码或环境中有什么错误。。。 下面是错误消息。。。 C:\Python27\python.exeD:/PythonPratice/test.pyTraceback(最近的最后一次调用):File"D:/PythonPratice/test.py",第9行,在driver.get('https://www.google.com.tw/')Fil