我正在尝试在加工的 RD 上使用 Selenium stanalone 3 beta4.jar + FireFox48 + Geckodriver,以下是我观察到的问题:
i) 我无法绕过或忽略以下应用程序的证书安全错误是我正在使用的代码。
ii)我想根据用户输入调用自定义或默认的 firefox 配置文件,但这也不起作用如果我从 Jenkins(linux 机器)触发自动化套件,我观察到每次触发套件时它都会创建一个新的 FireFox 配置文件,而不是调用我从 Code 传递的默认值或自定义值。但是,如果我从安装在 Windows 机器上的 Eclipse 调用相同的测试套件,则会根据代码选择 firefox 配置文件值。
注意:我正在使用远程桌面来执行我的测试套件,这意味着我的应用程序将在 RD 上被调用,并且所有执行都将发生在那里,只有调用部分我可以从 Jenkins(Linux 机器)执行。
下面是我正在使用的一段代码:
if(browser.contains("FIREFOX") || browser.equalsIgnoreCase("firefox") || browser.contains("mozilla"))
{
FirefoxProfile profile = new FirefoxProfile();
ProfilesIni allProfiles = new ProfilesIni();
capability = DesiredCapabilities.firefox();
capability.setCapability("marionette", true);
/* If Profile value is passed i.e. Selenium_Default profile is not going to be used, user wants to use some custom profile*/
if(!browserProfile.equalsIgnoreCase("SELENIUM_DEFAULT") || !browserProfile.equalsIgnoreCase("default"))
{
profile = allProfiles.getProfile(browserProfile);
logger.debug("Profile passed : " + profile);
capability.setCapability(FirefoxDriver.PROFILE, profile);
}
else
{
/*Handling case for default profile*/
profile = allProfiles.getProfile("default");
logger.debug("Profile passed : " + profile);
capability.setCapability(FirefoxDriver.PROFILE, profile);
}
logger.debug("Profile :" + profile);
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(false);
}
browserDriver = new RemoteWebDriver(new URL(nodeAddress), capability);
browserDriver.manage().timeouts().pageLoadTimeout(1000, TimeUnit.SECONDS);
browserDriver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
browserDriver.manage().window().maximize();
browserDriver.get(applicationUrl);
logger.info("WebDriver successfully defined with Session ID:" + browserDriver.getSessionId() + ", Page Title:" + browserDriver.getTitle() + " and URL: " + browserDriver.getCurrentUrl());