gpt4 book ai didi

java - 远程 Selenium 2 Webdriver 实例如何接受不受信任的证书?

转载 作者:行者123 更新时间:2023-12-04 05:16:09 27 4
gpt4 key购买 nike

我正在尝试使用 JUnit 实现一些 Selenium 2 Webdriver 测试。 SeleniumHQ.org 和网络上的文档让我感到困惑,因为它似乎在 Selenium RC 和 Webdriver 之间来回跳跃。另外,我的Java不是很强大。几年前我参加过一些类(class),但并没有经常使用它。我想从 headless CI 服务器运行 JUnit 测试,并使用 Webdriver 在远程客户端系统上运行 Firefox。

根据我收集到的信息,我可以使用以下代码在本地系统上打开由 Webdriver 控制的 Firefox 实例。我正在测试的网站有一个不受信任的 SSL/TLS 证书,所以我需要告诉 Firefox 驱动程序接受不受信任的证书。这在本地工作得很好:

FirefoxProfile profile = new FirefoxProfile();
profile.setAcceptUntrustedCertificates(true); // NOTE: this is the default behavior
RemoteWebDriver driver = new FirefoxDriver(profile);
Selenium selenium = new WebDriverBackedSelenium(driver, baseurl);

但是我不知道如何使用 Webdriver 在远程系统上执行此操作。这两种方法似乎完全不兼容。上面的代码不适合我用于远程使用 Webdriver 的以下代码:
Selenium selenium = new DefaultSelenium(host, port, browser, baseurl);
selenium.start();

现在,我花了很多时间在远程测试系统上使用自定义 Firefox 配置文件。它在 2012 年夏天工作,但在最近的操作系统和浏览器更新后,它停止工作。创建 Firefox 驱动程序配置文件并调用 setAcceptUntrustedCertificates(true) 似乎要好得多。是否可以使用 Webdriver 在远程系统上的浏览器中运行测试并让浏览器忽略不受信任的 SSL/TLS 证书?

最佳答案

正如您的问题中提到的,您不需要明确设置任何属性来接受不受信任的证书。默认情况下,webdriver 接受不受信任的证书。与其使用 webdriverbacked selenium,不如直接使用 remotewebdriver,例如:

Webdriver wd = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), DesiredCapabilities.firefox());

这里 http://localhost:4444/wd/hub是集线器的 URL,测试应该发送到它以执行。当您开始测试时,集线器将查找已注册 Firefox 功能的远程节点。

我个人建议阅读文档 http://code.google.com/p/selenium/wiki/Grid2而不是 seleniumhq.org。据我所知,selenium 团队正在努力更新 seleniumhq 文档。你也可以为它做出贡献:)

关于java - 远程 Selenium 2 Webdriver 实例如何接受不受信任的证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com