我正在尝试使用 JUnit 实现一些 Selenium 2 Webdriver 测试。SeleniumHQ.org 和网络上的文档让我感到困惑,因为它似乎在 Selenium RC 和 Webdriver 之间来回跳跃。另外,我的Java不是很强大。几年前我上过一些课程,但没有用太多。我想让 JUnit 测试从无头 CI 服务器运行,并使用 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 证书?