簡體   English   中英

在Firefox中運行測試時引發SessionNotCreatedException

[英]Throws SessionNotCreatedException While running test in Firefox

我正在使用以下版本:

Selenium: 3.6.0
Mozilla: 56.0
Gecko Driver: V 0.19.0

當我為mozilla firefox運行testng.xml文件時,它將引發以下異常:

日志:org.openqa.selenium.SessionNotCreatedException:無法創建新的遠程會話。 所需功能=功能[{marionette = true,二進制= C:\\ Program Files(x86)\\ Mozilla Firefox \\ firefox.exe,browserName = firefox,moz:firefoxOptions = {binary = Optional [FirefoxBinary(C:\\ Program Files \\ Mozilla Firefox \\ firefox.exe)],args = [],legacy = null,logLevel = null,prefs = {},profile = null},version =,platform = ANY}],所需功能=功能[{}]生成信息:版本:'未知',版本:'b526bd5',時間:'2017-03-07 11:11:07 -0800'系統信息:主機:'LAPTOP-HS6HUVRH',ip:'9.124.94.212',os。名稱:'Windows 10',os.arch:'amd64',os.version:'10 .0',java.version:'1.8.0_151'驅動程序信息:driver.version:org.openqa.selenium.remote.ProtocolHandshake上的FirefoxDriver org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)的org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)的.createSession(ProtocolHandshake.java:126) org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)在或 g.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)位於org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)位於org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver。 java:243)位於org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:121)位於org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:164)位於com.drlive.base.BaseTest.initApplication (BaseTest.java:126)位於sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)位於sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)位於sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)上的org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:523)上的java.lang.reflect.Method.invoke(Method.java:498)在org.testng.internal.Invoker.invokeConfigurations(Invoker.java:224)處 Inorger.java:146)位於org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:166)位於org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)位於org.testng.TestRunner.privateRun(TestRunner) .java:744),位於org.testng.TestRunner.run(TestRunner.java:602),位於org.testng.SuiteRunner.runTest(SuiteRunner.java:380),位於org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)在org.testng.SuiteRunner.run(SuiteRunner.java:289)在org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)在org.testng.SuiteRunner.run(SuiteRunner.java:289)在org.testng。在org.testng.TestNG.runSuiteSequentially(TestNG.java:1301)在org.testng.TestNG.runSuitesLocally(TestNG.java:1226)在org.testng.TestNG.runSuites(TestNG)的SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) .java:1144),位於org.testng.TestNG.run(TestNG.java:1115),位於org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114),位於org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG。 java:2 51)在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

碼:

if(browser.equalsIgnoreCase("firefox")) { 
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); 
capabilities.setCapability("marionette", true);
capabilities.setCapability("platform", Platform.ANY);
capabilities.setCapability("binary", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
driver=new FirefoxDriver(capabilities);
}

我認為您在初始化FirefoxDriver()之前尚未更新壁虎驅動程序的路徑,因此

  • 第一:您需要下載geckodriver才能運行Firefox。 Gecko驅動程序的下載鏈接
  • 第二:您需要在啟動驅動程序之前為geckodriver設置路徑。

因此,您的代碼應如下所示。

System.setProperty("webdriver.gecko.driver", "c:/path_to_driver/geckodriver.exe");
driver = new FirefoxDriver();

更新到最新的瀏覽器版本可解決此問題。 如果長期使用特定的瀏覽器版本,則geckodriver和selenium框架將不兼容。 更新您的firefox版本,錯誤可能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM