FAILED CONFIGURATION:@BeforeClass beforeClass - 无法创建新的远程会话

时间:2017-07-21 14:06:52

标签: selenium

我是Selenium和TestNG的初学者。我在IE中成功运行我的脚本,但它们没有在FireFox中执行。我使用的是FireFox版本54.0.1(32位),Selenium-java-3.3.1 - Geckodriver-v0.17.0-win32。以下是我的代码 -

package HealthiIndividualScripts;

import org.testng.annotations.Test;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import HealthiScreens.DashboardPage;
import HealthiScreens.LogOnPage;
import HealthiScreens.PatientFilterPage;
import HealthiScreens.PersonFormPage;
import HealthiScreens.RolePage;
import HealthiScreens.ToolsPage;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;

public class FFTestCaseTwo {
    private WebDriver driver;
    private String baseUrl;
    private static final Logger log = LogManager.getLogger(FFTestCaseTwo.class.getName());

    @BeforeClass
      public void beforeClass() {
        System.setProperty("webdriver.gecko.driver","U:\\My Documents\\Selenium\\Gecko\\geckodriver.exe");
        driver = new FirefoxDriver();
        baseUrl = "https://test.com/login";
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get(baseUrl);

      }

  @Test
  public void FFPharmacistCreatePatient() {
        LogOnPage.fillUserTextBox(driver, "*******");
        LogOnPage.fillPasswordTextBox(driver, "********");
        LogOnPage.clickOnSignInButton(driver);
        RolePage.RoleElement(driver);
        RolePage.clickOnRoleElement(driver);
        DashboardPage.ClinicalRecordElement(driver);
        DashboardPage.clickOnClinicalRecordElement(driver);
        PatientFilterPage.clickOnNewPatientButton(driver);
        PersonFormPage.CompleteTitleField(driver, "Mr.");
        PersonFormPage.fillFirstNameTextBox(driver, "Testautofirstname");
        PersonFormPage.fillMiddleNameTextBox(driver, "Middletest");
        PersonFormPage.fillLastNameTextBox(driver, "Testautolastname");
        PersonFormPage.fillDateofBirthBox(driver, "14/01/1980");
        PersonFormPage.fillNHSNumberTextBox(driver, "1111111111");
        PersonFormPage.CompleteEthnicityField(driver, "White");
        ToolsPage.WaitForXSeconds(3);
        PersonFormPage.fillTelephoneBox(driver, "01255888888");
        PersonFormPage.CompleteSubgroupField(driver, "Other White background");
        PersonFormPage.clickConsentTabElement(driver);
        PersonFormPage.clickYesRadioButton(driver);
        PersonFormPage.clickOnOKButton(driver);
        ToolsPage.WaitForXSeconds(3);
        PersonFormPage.clickOnDuplicatePatientYesButton(driver);
        ToolsPage.WaitForXSeconds(3);  
        log.info("Test run successfully");
  }


  @AfterClass
  public void afterMethod() {
      driver.switchTo().defaultContent();
      driver.findElement(By.xpath(".//*[@class='ui-menuitem-icon ui-icon log-out']")).click();
      driver.close();

      try {
          Thread.sleep(2000);
      } catch (InterruptedException e) {
      e.printStackTrace();
      }

        }

  }

我收到以下错误 -

FAILED CONFIGURATION: @BeforeClass beforeClass
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=null}}], required capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=null}}]
Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10 09:00:17 -0800'
System info: host: 'LPTE-CGF68Z1', ip: '10.3.8.28', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_51'
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:121)
    at HealthiIndividualScripts.FFTestCaseTwo.beforeClass(FFTestCaseTwo.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:523)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:224)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:166)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
    at org.testng.TestRunner.privateRun(TestRunner.java:744)
    at org.testng.TestRunner.run(TestRunner.java:602)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
    at org.testng.SuiteRunner.run(SuiteRunner.java:289)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
    at org.testng.TestNG.runSuites(TestNG.java:1144)
    at org.testng.TestNG.run(TestNG.java:1115)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)

SKIPPED CONFIGURATION: @AfterClass afterMethod
SKIPPED: FFPharmacistCreatePatient
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=null}}], required capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=null}}]
Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10 09:00:17 -0800'
System info: host: 'LPTE-CGF68Z1', ip: '10.3.8.28', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_51'
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:121)
    at HealthiIndividualScripts.FFTestCaseTwo.beforeClass(FFTestCaseTwo.java:31)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:523)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:224)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:166)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
    at org.testng.TestRunner.privateRun(TestRunner.java:744)
    at org.testng.TestRunner.run(TestRunner.java:602)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
    at org.testng.SuiteRunner.run(SuiteRunner.java:289)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
    at org.testng.TestNG.runSuites(TestNG.java:1144)
    at org.testng.TestNG.run(TestNG.java:1115)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)

1 个答案:

答案 0 :(得分:0)

您的代码看起来正确。

我想问题出在您的FireFox和Geckodriver版本。检查哪个Geckodriver版本支持您的FireFox版本,并将硒版本更新为最后一个。

希望this也能为您提供帮助。