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

在Webdriver(Selenium 2.0)中使用个人SSL证书

韩景胜
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在运行时创建的配置文件中。

I am not sure how yo do this in java, but in ruby I override the
layout_on_disk method of FirefoxProfile to add the extra files I required.
Java has the same
class

so you should be able to do this same thing.



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

  • 问题内容: 大家好,我使用的是webdriver,所以如果我想使用selenium; s的rc函数isElementPresent,我必须模拟selenium rc,所以我要执行以下操作: 并且由于isElementPresent的结果我总是会得到错误的信息,当然元素“文本”在网络上(正在使用GWT)。 问题答案: 我真的很喜欢Rostislav Matl 在WebDriver(第1部分)上的替代

  • 我知道这可能看起来很熟悉,但我向大家保证,我已经检查并重新运行了所有的答案,但我仍然不能使用我的有效GoDaddy SSL证书。下面是我在Spring Boot应用程序中制作和使用密钥库的步骤。我很感谢对此帖子的任何建议或评论。 > 我已经从我的GoDaddy帐户下载了与tomcat选件相关的证书包(还没有生成和提交CSR,只是使用了GoDaddy预生成的证书包)。该包包含以下一组文件。 GD_b

  • 我有SSL证书、私钥和SSLCertificateChain证书如下: > SSL证书: ----开始证书---- 私钥: ----开始RSA私钥----- 这里有钥匙 在/opt/tomcat/conf/server.xml中将连接器修改为: 我重新启动了tomcat服务器,http://www.digicert.com/help/show错误“SSL证书不可信”,如图所示。 文件扩展名或con

  • 问题内容: 在我的Java应用程序中,我需要使用SSL连接到同一主机,但每次都使用不同的证书。我需要使用其他证书的原因是,远程站点使用嵌入在证书中的用户ID属性来标识客户端。 这是一个在3个不同的操作系统上运行的服务器应用程序,我需要能够在不重新启动进程的情况下切换证书。 问题答案: SSL可以向客户端提示要显示的证书。这 可能 使您可以使用一个具有多个身份的密钥存储,但是,不幸的是,大多数服务器

  • 我是否需要一些时间(一天或更长时间)才能看到我的自定义SSL证书?还是我做错了什么?