无法使用 selenium 3.3.1 在 geb spock 中启动具有特定语言的 firefox 浏览器

Not able to launch firefox browser with specific language in geb spock with selenium 3.3.1

我使用的是 geb spock 框架,它与 Selenium 2.52.0 配合得很好,我能够使用不同的语言启动不同的浏览器。为此,我在下面写了 GebConfig.groovy 文件。

当我将 selenium 版本升级到 3.3.1 并将 Firefox 版本升级为 56 时,我无法在 Firefox 上执行测试用例。浏览器正在启动,但无法加载 url 并出现以下错误。我尝试了几种方法,但是暂时请参考下面GebConfig.groovy和错误详细信息:

GebCOnfig.groovy

/*
    This is the Geb configuration file.

    See: http://www.gebish.org/manual/current/configuration.html
*/


import com.gargoylesoftware.htmlunit.BrowserVersion
import com.gargoylesoftware.htmlunit.WebClient
import org.openqa.selenium.Platform
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions
import org.openqa.selenium.firefox.FirefoxDriver
import org.openqa.selenium.firefox.FirefoxOptions
import org.openqa.selenium.firefox.FirefoxProfile
import org.openqa.selenium.htmlunit.HtmlUnitDriver
import org.openqa.selenium.ie.InternetExplorerDriver
import org.openqa.selenium.remote.CapabilityType
import org.openqa.selenium.remote.DesiredCapabilities
import org.openqa.selenium.remote.RemoteWebDriver

import java.util.logging.Level
import java.util.logging.Logger
/*
1) For testing on different browsers, On Edit Configurations provide VM Options = -ea -Dgeb.env=<BROWSER_NAME>
2) For testing from command prompt by using maven command, run the command :
   mvn -Dgeb.env=<BROWSER_NAME> -Dtest=<TEST_CASE_NAME_WITHOUT_EXTENSION > test

Note: <BROWSER_NAME> = "firefox" or "chrome" or "ie" or "htmlunit"
      <TEST_CASE_NAME_WITHOUT_EXTENSION> example: eSuite_MP_CON_09_Zoek_in_kennisbank_PDC                        */

//FUNCTIONAL SETTINGS
def final DEFAULT_BROWSER = "firefox"                            //"chrome" or "firefox" or "ie" or "htmlunit"
def final BASE_URL = "https://india.westernunion.com/WUCOMWEB/signInAction.do?method=load"

def final DEFAULT_LANGUAGE = "nl"                                       //"en" or "nl"
def final REPORT_DIR = 'target/reports'
def final DEFAULT_DOWNLOAD_PATH = "C://Users/IEUser/Downloads/"
def final USERNAMEAPP = "Testbeheerder" //was "Beheerder"
def final PASSWORDAPP = "March@2017" //was "Jan@2017"



//TECHNICAL SETTINGS
def final WAITFOR_TIMEOUT = 50
def final WAITFOR_RETRY = 0.5
def final WAIT_AT_KEYWORD_AT = true
def final WAIT_TIME = 1000


def browser = System.getProperty("geb.env")
//Default browser
if (!correctBrowser(browser)) {
    browser = DEFAULT_BROWSER
}

def envLang = System.getProperty("geb.env.lang")
//Default language
if (!correctLanguage(envLang)) {
    envLang = DEFAULT_LANGUAGE
}

System.setProperty("geb.env.lang", envLang)
System.setProperty("geb.build.baseUrl", BASE_URL);
System.setProperty("geb.build.beheer.baseUrl", BASE_URL_BEHEER);
System.setProperty("geb.build.loket.baseUrl", BASE_URL_LOKET);
System.setProperty("geb.wait.time", WAIT_TIME.toString());
System.setProperty("geb.download.path", DEFAULT_DOWNLOAD_PATH);
System.setProperty("usernameapp", USERNAMEAPP);
System.setProperty("passwordapp", PASSWORDAPP);
System.setProperty("penguinusername", PENGUINUSERNAME);
System.setProperty("penguinpassword", PENGUINPASSWORD);

System.setProperty("geb.env", browser)

System.setProperty("USERNAME", USERNAME);
System.setProperty("DATABASE", DATABASE);
System.setProperty("HOSTNAME", HOSTNAME);
System.setProperty("PGPASSWORD", PGPASSWORD);

if (Platform.LINUX.equals(Platform.getCurrent())) {
    System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver-2.15-linux64");
} else {
    System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver.exe");
    //System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver-2.15_win32.exe");
}
//System.setProperty("webdriver.ie.driver", "src/test/resources/drivers/IEDriverServer-2.45.0_Win32_.exe");
System.setProperty("webdriver.ie.driver", "src/test/resources/drivers/IEDriverServer.exe");
System.setProperty("webdriver.gecko.driver", "src/test/resources/drivers/geckodriver.exe");

environments {

    driver = { getDriver(browser, envLang) }

}

/**
 * Returns the browser specific WebDriver
 * @param browser Browser name
 * @return WebDriver
 */
private WebDriver getDriver(def browser, def language) {

    if ("chrome".equalsIgnoreCase(browser)) {

        DesiredCapabilities chromeCapabilities = DesiredCapabilities.chrome();
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("--start-maximized");
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("intl.accept_languages", language);
        chromeOptions.setExperimentalOption("prefs", prefs);
        chromeCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions)
        def chromeDriver = new ChromeDriver(chromeCapabilities)
        chromeDriver.manage().window().maximize()
        chromeDriver

    } else if ("firefox".equalsIgnoreCase(browser)) {

    // Case 1: which was working earlier
        FirefoxProfile profile = new FirefoxProfile()
        profile.setPreference("intl.accept_languages", language)
        def firefoxDriver = new FirefoxDriver(profile)
        firefoxDriver.manage().window().maximize()
        firefoxDriver

        // Case 2 : 
        /*FirefoxOptions options = new FirefoxOptions().setLogLevel(Level.OFF)
        def firefoxDriver = new FirefoxDriver(options)
        firefoxDriver.manage().window().maximize()
        firefoxDriver*/

        // Case 3 : 
        /*DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette", true);
        def firefoxDriver = new RemoteWebDriver(capabilities);
        firefoxDriver.manage().window().maximize()
        firefoxDriver*/


    } else if ("ie".equalsIgnoreCase(browser)) {

        /**
         * For InternetExplorer: In order to set the browser language to 'EN' or 'NL',
         *  Go to, Settings -> Internet Options -> General ->
         *  - Click on the button 'Languages'
         *  - In the Language text box,
         *    Add the desired language "Dutch (Netherlands) [nl-NL]" or "English (United States) [en-US]"
         *    and move it up by clicking 'Move up' button
         *
         */
        DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer()
        ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING, false)
        ieCapabilities.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, false)
        ieCapabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true)
        ieCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true)
        ieCapabilities.setCapability(CapabilityType.HAS_NATIVE_EVENTS, true)
        ieCapabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true);
        ieCapabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
        ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true)
        ieCapabilities.setJavascriptEnabled(true);
        def ieDriver = new InternetExplorerDriver(ieCapabilities)
        ieDriver.manage().window().maximize()
        ieDriver

    } else if ("htmlunit".equalsIgnoreCase(browser)) {

        WebDriver htmlUnitDriver = new HtmlUnitDriver() {
            protected WebClient modifyWebClient(WebClient client) {
                client = new WebClient(BrowserVersion.CHROME);
                client.getOptions().setUseInsecureSSL(true);
                client.getOptions().setThrowExceptionOnScriptError(false);
                return client;
            }
        };
        BrowserVersion.CHROME.setBrowserLanguage(language.toString())
        // Turn off htmlunit warnings
        Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
        Logger.getLogger("org.apache.http").setLevel(Level.OFF);
        htmlUnitDriver.setJavascriptEnabled(true);
        htmlUnitDriver.manage().window().maximize()
        htmlUnitDriver

    }

}

/**
 * Checks if the browser name provided is the correct one
 * @param browser Browser name
 * @return boolean
 */
private boolean correctBrowser(def browser) {
    boolean result = true;
    if (null == browser || (!"chrome".equalsIgnoreCase(browser) && !"firefox".equalsIgnoreCase(browser) && !"ie".equalsIgnoreCase(browser) && !"htmlunit".equalsIgnoreCase(browser))) {
        result = false;
    }
    return result;
}

/**
 * Check if the language provided is the correct one
 * @param lang Language
 * @return boolean
 */
private boolean correctLanguage(def lang) {
    boolean result = true;
    if (null == lang || (!"en".equalsIgnoreCase(lang) && !"nl".equalsIgnoreCase(lang))) {
        result = false;
    }
    return result;
}



waiting {
    timeout = WAITFOR_TIMEOUT
    retryInterval = WAITFOR_RETRY
}

atCheckWaiting = WAIT_AT_KEYWORD_AT
reportsDir = REPORT_DIR

错误说明:

"C:\Program Files\Java\jdk1.8.0_131\bin\java" -ea -Dgeb.build.reportsDir=target/test-reports/geb -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.3\lib\idea_rt.jar=52849:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.3\plugins\junit\lib\junit-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.2.3\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\DurgeshProjectWork\Workspace\IdeaProjects\wu_bdd_geb\target\test-classes;C:\Users\acer\.m2\repository\org\spockframework\spock-core.0-groovy-2.4\spock-core-1.0-groovy-2.4.jar;C:\Users\acer\.m2\repository\junit\junit.12\junit-4.12.jar;C:\Users\acer\.m2\repository\org\hamcrest\hamcrest-core.3\hamcrest-core-1.3.jar;C:\Users\acer\.m2\repository\org\gebish\geb-spock.1\geb-spock-2.1.jar;C:\Users\acer\.m2\repository\org\codehaus\groovy\groovy-all.4.7\groovy-all-2.4.7.jar;C:\Users\acer\.m2\repository\org\gebish\geb-core.1\geb-core-2.1.jar;C:\Users\acer\.m2\repository\org\gebish\geb-ast.1\geb-ast-2.1.jar;C:\Users\acer\.m2\repository\org\gebish\geb-waiting.1\geb-waiting-2.1.jar;C:\Users\acer\.m2\repository\org\gebish\geb-implicit-assertions.1\geb-implicit-assertions-2.1.jar;C:\Users\acer\.m2\repository\org\gebish\geb-exceptions.1\geb-exceptions-2.1.jar;C:\Users\acer\.m2\repository\org\jodd\jodd-lagarto.7.1\jodd-lagarto-3.7.1.jar;C:\Users\acer\.m2\repository\org\jodd\jodd-core.7.1\jodd-core-3.7.1.jar;C:\Users\acer\.m2\repository\org\jodd\jodd-log.7.1\jodd-log-3.7.1.jar;C:\Users\acer\.m2\repository\org\gebish\geb-test-common.1\geb-test-common-2.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-java.3.1\selenium-java-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver.3.1\selenium-chrome-driver-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver.3.1\selenium-remote-driver-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-api.3.1\selenium-api-3.3.1.jar;C:\Users\acer\.m2\repository\cglib\cglib-nodep.2.4\cglib-nodep-3.2.4.jar;C:\Users\acer\.m2\repository\org\apache\commons\commons-exec.3\commons-exec-1.3.jar;C:\Users\acer\.m2\repository\com\google\guava\guava.0\guava-21.0.jar;C:\Users\acer\.m2\repository\net\java\dev\jna\jna-platform.1.0\jna-platform-4.1.0.jar;C:\Users\acer\.m2\repository\net\java\dev\jna\jna.1.0\jna-4.1.0.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver.3.1\selenium-edge-driver-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver.3.1\selenium-firefox-driver-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver.3.1\selenium-ie-driver-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver.3.1\selenium-opera-driver-3.3.1.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver.3.1\selenium-safari-driver-3.3.1.jar;C:\Users\acer\.m2\repository\com\codeborne\phantomjsdriver.4.0\phantomjsdriver-1.4.0.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\htmlunit-driver.24\htmlunit-driver-2.24.jar;C:\Users\acer\.m2\repository\org\seleniumhq\selenium\selenium-support.9.1\selenium-support-3.9.1.jar;C:\Users\acer\.m2\repository\net\bytebuddy\byte-buddy.7.9\byte-buddy-1.7.9.jar;C:\Users\acer\.m2\repository\com\squareup\okhttp3\okhttp.9.1\okhttp-3.9.1.jar;C:\Users\acer\.m2\repository\com\squareup\okio\okio.13.0\okio-1.13.0.jar;C:\Users\acer\.m2\repository\net\sourceforge\htmlunit\htmlunit.24\htmlunit-2.24.jar;C:\Users\acer\.m2\repository\xalan\xalan.7.2\xalan-2.7.2.jar;C:\Users\acer\.m2\repository\xalan\serializer.7.2\serializer-2.7.2.jar;C:\Users\acer\.m2\repository\org\apache\commons\commons-lang3.5\commons-lang3-3.5.jar;C:\Users\acer\.m2\repository\org\apache\httpcomponents\httpmime.5.2\httpmime-4.5.2.jar;C:\Users\acer\.m2\repository\net\sourceforge\htmlunit\htmlunit-core-js.23\htmlunit-core-js-2.23.jar;C:\Users\acer\.m2\repository\net\sourceforge\htmlunit\neko-htmlunit.24\neko-htmlunit-2.24.jar;C:\Users\acer\.m2\repository\xerces\xercesImpl.11.0\xercesImpl-2.11.0.jar;C:\Users\acer\.m2\repository\xml-apis\xml-apis.4.01\xml-apis-1.4.01.jar;C:\Users\acer\.m2\repository\net\sourceforge\cssparser\cssparser[=11=].9.21\cssparser-0.9.21.jar;C:\Users\acer\.m2\repository\org\w3c\css\sac.3\sac-1.3.jar;C:\Users\acer\.m2\repository\commons-io\commons-io.5\commons-io-2.5.jar;C:\Users\acer\.m2\repository\org\eclipse\jetty\websocket\websocket-client.2.20.v20161216\websocket-client-9.2.20.v20161216.jar;C:\Users\acer\.m2\repository\org\eclipse\jetty\jetty-util.2.20.v20161216\jetty-util-9.2.20.v20161216.jar;C:\Users\acer\.m2\repository\org\eclipse\jetty\jetty-io.2.20.v20161216\jetty-io-9.2.20.v20161216.jar;C:\Users\acer\.m2\repository\org\eclipse\jetty\websocket\websocket-common.2.20.v20161216\websocket-common-9.2.20.v20161216.jar;C:\Users\acer\.m2\repository\org\eclipse\jetty\websocket\websocket-api.2.20.v20161216\websocket-api-9.2.20.v20161216.jar;C:\Users\acer\.m2\repository\com\google\code\gson\gson.3.1\gson-2.3.1.jar;C:\Users\acer\.m2\repository\org\apache\httpcomponents\httpclient.3.4\httpclient-4.3.4.jar;C:\Users\acer\.m2\repository\org\apache\httpcomponents\httpcore.3.2\httpcore-4.3.2.jar;C:\Users\acer\.m2\repository\commons-logging\commons-logging.1.3\commons-logging-1.1.3.jar;C:\Users\acer\.m2\repository\commons-codec\commons-codec.6\commons-codec-1.6.jar;C:\Users\acer\.m2\repository\com\googlecode\json-simple\json-simple.1.1\json-simple-1.1.1.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 specs.sprintOne.TC_001_LoginSample_spec
1520759641134   geckodriver INFO    geckodriver 0.19.1
1520759641140   geckodriver INFO    Listening on 127.0.0.1:8942
1520759642011   mozrunner::runner   INFO    Running command: "C:\Program Files\Mozilla Firefox\firefox.exe" "-marionette" "-profile" "C:\Users\acer\AppData\Local\Temp\rust_mozprofile.jGPMmTbag3iw"
1520759642327   addons.xpi  WARN    Error parsing extensions state: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [amIAddonManagerStartup.readStartupData]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: loadExtensionState :: line 1554"  data: no] Stack trace: loadExtensionState()@resource://gre/modules/addons/XPIProvider.jsm:1554 < getInstallState()@resource://gre/modules/addons/XPIProvider.jsm:1589 < checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3109 < startup()@resource://gre/modules/addons/XPIProvider.jsm:2188 < callProvider()@resource://gre/modules/AddonManager.jsm:269 < _startProvider()@resource://gre/modules/AddonManager.jsm:739 < startup()@resource://gre/modules/AddonManager.jsm:906 < startup()@resource://gre/modules/AddonManager.jsm:3090 < observe()@jar:file:///C:/Program%20Files/Mozilla%20Firefox/omni.ja!/components/addonManager.js:65
1520759643229   Marionette  INFO    Enabled via --marionette
Unable to read VR Path Registry from C:\Users\acer\AppData\Local\openvr\openvrpaths.vrpath
[Child 10700] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 10700] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
1520759645835   Marionette  INFO    Listening on port 52856
1520759646171   Marionette  DEBUG   Register listener.js for window 6442450945
1520759646375   geckodriver INFO    geckodriver 0.19.1
1520759646387   geckodriver INFO    Listening on 127.0.0.1:5497
1520759646950   mozrunner::runner   INFO    Running command: "C:\Program Files\Mozilla Firefox\firefox.exe" "-marionette" "-profile" "C:\Users\acer\AppData\Local\Temp\rust_mozprofile.WwKvyKDi21YC"
1520759647155   addons.xpi  WARN    Error parsing extensions state: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [amIAddonManagerStartup.readStartupData]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: loadExtensionState :: line 1554"  data: no] Stack trace: loadExtensionState()@resource://gre/modules/addons/XPIProvider.jsm:1554 < getInstallState()@resource://gre/modules/addons/XPIProvider.jsm:1589 < checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3109 < startup()@resource://gre/modules/addons/XPIProvider.jsm:2188 < callProvider()@resource://gre/modules/AddonManager.jsm:269 < _startProvider()@resource://gre/modules/AddonManager.jsm:739 < startup()@resource://gre/modules/AddonManager.jsm:906 < startup()@resource://gre/modules/AddonManager.jsm:3090 < observe()@jar:file:///C:/Program%20Files/Mozilla%20Firefox/omni.ja!/components/addonManager.js:65
1520759647895   Marionette  INFO    Enabled via --marionette
1520759650640   Marionette  INFO    Listening on port 52883
1520759651100   Marionette  DEBUG   Register listener.js for window 6442450945

geb.driver.DriverCreationException: failed to create driver from callback 'script15207596390172071282656$_run_closure1$_closure3@51768776'

    at geb.driver.CallbackDriverFactory.getDriver(CallbackDriverFactory.groovy:35)
    at geb.driver.CachingDriverFactory.getDriver_closure3(CachingDriverFactory.groovy:85)
    at geb.driver.CachingDriverFactory.getDriver_closure3(CachingDriverFactory.groovy)
    at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:32)
    at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:84)
    at geb.Configuration.createDriver(Configuration.groovy:382)
    at geb.Configuration.getDriver(Configuration.groovy:371)
    at geb.Browser.getDriver(Browser.groovy:111)
    at geb.navigator.factory.BrowserBackedNavigatorFactory.<init>(BrowserBackedNavigatorFactory.groovy:35)
    at geb.Configuration.createNavigatorFactory(Configuration.groovy:417)
    at geb.Browser.createNavigatorFactory(Browser.groovy:133)
    at geb.Browser.getNavigatorFactory(Browser.groovy:121)
    at geb.Page.init(Page.groovy:144)
    at geb.Browser.createPage(Browser.groovy:859)
    at geb.Browser.to(Browser.groovy:550)
    at geb.Browser.to(Browser.groovy:539)
    at geb.spock.GebSpec.methodMissing(GebSpec.groovy:56)
    at specs.sprintOne.TC_001_LoginSample_spec.Step 0: Properties laden(TC_001_LoginSample_spec.groovy:14)
Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=org.openqa.selenium.firefox.FirefoxProfile@36676c1a}, firefox_profile=org.openqa.selenium.firefox.FirefoxProfile@36676c1a}], required capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=org.openqa.selenium.firefox.FirefoxProfile@36676c1a}, firefox_profile=org.openqa.selenium.firefox.FirefoxProfile@36676c1a}]
Build info: version: '3.3.1', revision: '5234b325d5', time: '2017-03-10 09:10:29 +0000'
System info: host: 'DESKTOP-KMHBAIB', ip: '192.168.220.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:218)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:137)
    at script15207596390172071282656.getDriver(script15207596390172071282656.groovy:131)
    at script15207596390172071282656.run_closure1$_closure3(script15207596390172071282656.groovy:103)
    at script15207596390172071282656.run_closure1$_closure3(script15207596390172071282656.groovy)
    at geb.driver.CallbackDriverFactory.getDriver(CallbackDriverFactory.groovy:29)
    ... 17 more

1520759651155   geckodriver INFO    geckodriver 0.19.1
1520759651162   geckodriver INFO    Listening on 127.0.0.1:7479
1520759651750   mozrunner::runner   INFO    Running command: "C:\Program Files\Mozilla Firefox\firefox.exe" "-marionette" "-profile" "C:\Users\acer\AppData\Local\Temp\rust_mozprofile.gGnTCVSPMRcn"
1520759651983   addons.xpi  WARN    Error parsing extensions state: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [amIAddonManagerStartup.readStartupData]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: loadExtensionState :: line 1554"  data: no] Stack trace: loadExtensionState()@resource://gre/modules/addons/XPIProvider.jsm:1554 < getInstallState()@resource://gre/modules/addons/XPIProvider.jsm:1589 < checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3109 < startup()@resource://gre/modules/addons/XPIProvider.jsm:2188 < callProvider()@resource://gre/modules/AddonManager.jsm:269 < _startProvider()@resource://gre/modules/AddonManager.jsm:739 < startup()@resource://gre/modules/AddonManager.jsm:906 < startup()@resource://gre/modules/AddonManager.jsm:3090 < observe()@jar:file:///C:/Program%20Files/Mozilla%20Firefox/omni.ja!/components/addonManager.js:65
1520759652660   Marionette  INFO    Enabled via --marionette
Unable to read VR Path Registry from C:\Users\acer\AppData\Local\openvr\openvrpaths.vrpath
[Child 12052] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 12052] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
1520759655598   Marionette  INFO    Listening on port 52919
1520759655906   Marionette  DEBUG   Register listener.js for window 4294967297

geb.driver.DriverCreationException: failed to create driver from callback 'script15207596390172071282656$_run_closure1$_closure3@51768776'

    at geb.driver.CallbackDriverFactory.getDriver(CallbackDriverFactory.groovy:35)
    at geb.driver.CachingDriverFactory.getDriver_closure3(CachingDriverFactory.groovy:85)
    at geb.driver.CachingDriverFactory.getDriver_closure3(CachingDriverFactory.groovy)
    at geb.driver.CachingDriverFactory$SimpleCache.get(CachingDriverFactory.groovy:32)
    at geb.driver.CachingDriverFactory.getDriver(CachingDriverFactory.groovy:84)
    at geb.Configuration.createDriver(Configuration.groovy:382)
    at geb.Configuration.getDriver(Configuration.groovy:371)
    at geb.Browser.getDriver(Browser.groovy:111)
    at geb.report.PageSourceReporter.getPageSource(PageSourceReporter.groovy:42)
    at geb.report.PageSourceReporter.writePageSource(PageSourceReporter.groovy:38)
    at geb.report.PageSourceReporter.writeReport(PageSourceReporter.groovy:29)
    at geb.report.CompositeReporter.writeReport(CompositeReporter.groovy:31)
    at geb.Browser.report(Browser.groovy:931)
    at geb.spock.GebReportingSpec.report(GebReportingSpec.groovy:59)
    at geb.spock.GebReportingSpec.cleanup(GebReportingSpec.groovy:46)
Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=org.openqa.selenium.firefox.FirefoxProfile@1827a871}, firefox_profile=org.openqa.selenium.firefox.FirefoxProfile@1827a871}], required capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=org.openqa.selenium.firefox.FirefoxProfile@1827a871}, firefox_profile=org.openqa.selenium.firefox.FirefoxProfile@1827a871}]
Build info: version: '3.3.1', revision: '5234b325d5', time: '2017-03-10 09:10:29 +0000'
System info: host: 'DESKTOP-KMHBAIB', ip: '192.168.220.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:218)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:137)
    at script15207596390172071282656.getDriver(script15207596390172071282656.groovy:131)
    at script15207596390172071282656.run_closure1$_closure3(script15207596390172071282656.groovy:103)
    at script15207596390172071282656.run_closure1$_closure3(script15207596390172071282656.groovy)
    at geb.driver.CallbackDriverFactory.getDriver(CallbackDriverFactory.groovy:29)
    ... 14 more

你能在这方面指导我吗,因为我的要求非常具体,也需要以多种语言启动浏览器。 GebConfig 文件适用于 chrome.

谢谢

我可以通过执行以下设置来解决此问题: 硒版本:3.6.0 火狐版本:56.0 壁虎驱动程序版本:0.19.1

然后在 GebConfig.groovy

中执行以下更改
FirefoxOptions options = new FirefoxOptions().setLogLevel(Level.OFF)
        options.addArguments("incognito")
        def firefoxDriver = new FirefoxDriver(options)
        firefoxDriver.manage().window().maximize()
        firefoxDriver

Firefox 启动成功。

感谢您对此的帮助。