НЕУДАЧНАЯ КОНФИГУРАЦИЯ: @BeforeClass setUp и НЕУДАЧНАЯ КОНФИГУРАЦИЯ: @AfterClass tearDown java.lang.NullPointerException ошибки

Я использую версию selenium 3.0.0-beta4. Пытался настроить параметры geckoDriver в моем проекте. Я использовал Maven и TestNG вместе с java.

import java.util.concurrent.TimeUnit;
import org.testng.annotations.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.WebDriver;

public class GmailSignupAutomation {
    private WebDriver driver;
      private String baseUrl;

 @BeforeClass(alwaysRun = true)
      public void setUp() throws Exception {System.setProperty("webdriver.gecko.driver","D://software_/geckodriver-v0.11.1-win64/geckodriver.exe");

      DesiredCapabilities capabilities = DesiredCapabilities.firefox();
      capabilities.setCapability("marionette", true);
      **driver = new FirefoxDriver(capabilities);**

        baseUrl = "https://accounts.google.com/";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      }

@Test
      public void testGoogleAccountLoginForm() throws Exception {
        driver.get(baseUrl + "//SignUp?service=mail&continue=https://mail.google.com/mail/?pc=topnav-about-en");
        driver.findElement(By.id("FirstName")).clear();
        driver.findElement(By.id("FirstName")).sendKeys("HOSSAIN");
      }

@AfterClass(alwaysRun = true)
      public void tearDown() throws Exception {
        driver.quit();
      }

}

И вот результат:

1476438749160 geckodriver INFO Прослушивание 127.0.0.1:39530 14 октября 2016 г. 15:52:29 org.openqa.selenium.remote.ProtocolHandshake createSession

ИНФОРМАЦИЯ: попытка двухдиалектного сеанса при условии, что на удаленном конце выполняется закон Постела.

1476438749613 mozprofile :: profile INFO Использование пути к профилю C: \ Users \ HOSSAI ~ 1.MAH \ AppData \ Local \ Temp \ rust_mozprofile.e9aWwalq9rWK

1476438749656 geckodriver :: marionette INFO Запуск браузера C: \ Program Files \ Mozilla Firefox \ firefox.exe

1476438749683 geckodriver :: marionette INFO Подключение к Marionette на локальном хосте: 61519 14 октября 2016 г. 15:52:32 org.openqa.selenium.remote.ProtocolHandshake createSession

ИНФОРМАЦИЯ: Возврат к прямому подключению удаленного конца W3C

1476438752490 mozprofile :: profile INFO Использование пути к профилю C: \ Users \ HOSSAI ~ 1.MAH \ AppData \ Local \ Temp \ rust_mozprofile.D6FkME6daU3V

1476438752499 geckodriver :: marionette INFO Запуск браузера C: \ Program Files \ Mozilla Firefox \ firefox.exe

1476438752535 geckodriver :: marionette INFO Подключение к Marionette на локальном хосте: 61527 14 октября 2016 г. 15:52:37 org.openqa.selenium.remote.ProtocolHandshake createSession

ИНФОРМАЦИЯ: Возврат к исходному протоколу OSS JSON Wire. 1476438757062 mozprofile :: profile INFO Использование пути к профилю

C: \ Users \ HOSSAI ~ 1.MAH \ AppData \ Local \ Temp \ rust_mozprofile.FHKHmYIM3lXI

1476438757069 geckodriver :: marionette INFO Запуск браузера C: \ Program Files \ Mozilla Firefox \ firefox.exe

1476438757127 geckodriver :: marionette ИНФОРМАЦИЯ Подключение к Marionette на локальном хосте: 61557

[Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ Default suite \ Default test.xml

[Утилиты] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ Существует набор по умолчанию: true

НЕУДАЧНАЯ КОНФИГУРАЦИЯ: @BeforeClass setUp org.openqa.selenium.SessionNotCreatedException: невозможно создать новый удаленный сеанс. желаемые возможности = Возможности [{marionette = true, browserName = firefox, version =, platform = ANY}], необходимые возможности = Возможности [{}]

Информация о сборке: версия: 'unknown', ревизия: '3169782', время: '2016-09-29 10:24:50 -0700' Информация о системе: host: 'XYZ', ip: '101.140.178.123', os. имя: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'

НЕПРАВИЛЬНАЯ КОНФИГУРАЦИЯ: @AfterClass tearDown java.lang.NullPointerException в SeleniumAutomation.GoogleSignupAutomation.GmailSignupAutomation.tearDown (GmailSignupAutomation.java:55) в sun.reflect.NativeMethodAccessorNativeSun.reflect.NativeMethodMethodAccessorNvokeInvokePlus (исходный код) в sun.reflect.DelegatingMethodAccessorImpl.invoke (Неизвестный источник) в java.lang.reflect.Method.invoke (Неизвестный источник) в org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java.:100) в Invoker.invokeConfigurationMethod (Invoker.java:515) в org.testng.internal.Invoker.invokeConfigurations (Invoker.java:216) в org.testng.internal.Invoker.invokeConfigurations (Invoker.java:143) в org.testng. .TestMethodWorker.invokeAfterClassMethods (TestMethodWorker.java:217) в org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:115) в org.testng.TestRunner.privatener.java: запустить (TestRunner.java:600) на org.testng.SuiteRunner.runTest (SuiteRunner.java:366) на org.testng.SuiteRunner.runSequencies (SuiteRunner.java:361) на org.testng.SuiteRunner.privateRun (SuiteRunner.java: 319) на org.testng.SuiteRunner.run (SuiteRunner.java:268) на org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) на org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker на orgava .:86) testng.TestNG.runSuites Последовательно (TestNG.java:1264) в org.testng.TestNG.runSuitesLocally (TestNG.java:1189) в org.testng.TestNG.runSuites (TestNG.java:1104) в org.testng.TestNG.run (TestNG.java:1076) на org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:126) на org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:152) на org.testng.remote.Remote.Remote.Remote. основной (RemoteTestNG.java:57)

ПРОПУЩЕНО: testGoogleAccountLoginForm

=============================================== Набор по умолчанию Всего запусков тестов: 1, сбоев: 0, пропусков: 1, сбоев конфигурации: 2, пропусков: 0

Default test
Tests run: 1, Failures: 0, Skips: 1

Я думаю, что после установки пути к драйверу вам нужно установить DesiredCapabilities на MarionetteDriver, как показано в приведенном ниже коде. У меня работает нормально.

Вы можете попробовать, выполнив следующие действия:

Ошибки конфигурации: 2, пропуски: 0


person Hossain Mahmood Tuhin    schedule 14.10.2016    source источник
comment
Информация о драйвере: driver.version: FirefoxDriver на org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHandshake.java:80) на org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandag.Executor.execute (HttpCommandAjavаg.cutor.qtp) .selenium.remote.service.DriverCommandExecutor.execute (DriverCommandExecutor.java:82) в org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:602) в org.openqa.selenium.temo .java: 242) на org.openqa.selenium.remote.RemoteWebDriver. (RemoteWebDriver.java:129) на org.openqa.selenium.firefox.FirefoxDriver. (FirefoxDriver.java:247) на org.openqa.selenium.selenium. FirefoxDriver. (FirefoxDriver.java:235) на org.openqa.selenium.firefox.FirefoxDriver. (FirefoxDriver.java:230) на org.openqa.selenium.firefox.FirefoxDriver. (FirefoxDriver.java:226) на org.openqa selenium.firefox.FirefoxDriver. (FirefoxDriver.java:124) в SeleniumAutomation.GoogleSignupAutomation.GmailSignup Automation.setUp (GmailSignupAutomation.java:39) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.in .reflect.Method.invoke (Неизвестный источник) в org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:100) в org.testng.internal.Invoker.invokeConfigurationMethod (Invoker15) в org.testng.internal:5:5 .Invoker.invokeConfigurations (Invoker.java:216) в org.testng.internal.Invoker.invokeConfigurations (Invoker.java:143) в org.testng.internal.TestMethodWorker.invokeBeforeClassMethods (TestMethodWorker.invokeBeforeClassMethods (TestMethod9). internal.TestMethodWorker.run (TestMethodWorker.java:108) в org.testng.TestRunner.privateRun (TestRunner.java:746) в org.testng.TestRunner.run (TestRunner.java:600) в org.testner.SuiteRunite (SuiteRunner.java:366) на org.testng.SuiteRunner.runSequential (Su iteRunner.java:361) на org.testng.SuiteRunner.privateRun (SuiteRunner.java:319) на org.testng.SuiteRunner.run (SuiteRunner.java:268) на org.testng.SuiteRunnerWorker.runSuite (SuiteRunner:52 ) в org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:86) в org.testng.TestNG.runSuitesSequential (TestNG.java:1264) в org.testng.TestNG.runSuites Локально (TestNG.java:1189) в org.testng .TestNG.runSuites (TestNG.java:1104) в org.testng.TestNG.run (TestNG.java:1076) в org.testng.remote. AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:126) в org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:152) в org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:57)   -  person Hossain Mahmood Tuhin    schedule 14.10.2016


Ответы (2)


Я переименовал его в wire.exe, в основном для того, чтобы код был согласован, чтобы мне не приходилось обновлять код каждый раз, когда я меняю версию драйвера марионетки.

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
                            capabilities.setCapability("marionette", true);
                            Driver = new MarionetteDriver(capabilities);
person Ag_Yoge    schedule 14.10.2016
comment
[TestNG] Время, затраченное org.testng.reporters.XMLReporter@3b938003: 50 мс [TestNG] Время, затраченное org.testng.reporters.EmailableReporter2@475e586c: 12 мс [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ toc.html [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ Default test.properties [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ index.html [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ main.html [Утилиты] Каталог D: \ Projects \ Automation \ Googl eSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ groups.html [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ classes.html [Utils] Directory D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ reporter-output.html [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ methods-not-run.html [ Утилиты] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Attempti ng для создания D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Default suite \ testng.xml.html [Utils] Directory D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ Набор по умолчанию существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old \ index.html [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ old существует: true [TestNG] Затраченное время автор: org.testng.reporters.SuiteHTMLReporter@780cb77: 95 мс [Утилиты] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ junitreports \ TEST-SeleniumAutomation. GoogleSignupAutomation.GmailSignupAutomation.xml [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ junitreports существует: true [TestNG] Время, затраченное org.testng.reporters.JUnitReportReporter@3a079870: 106 мс, затраченное [TestNG] org.testng.reporters.jq.Main@17c1bced: 241 мс [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ testng-failed.xml [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output существует: true [Utils] Попытка создать D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ Default suite \ testng-failed.xml [Utils] Каталог D: \ Projects \ Automation \ GoogleSignupAutomation \ test-output \ Набор по умолчанию существует: true [TestNG] Время, затраченное [FailedReporter выполнено = 0 не удалось = 0 пропущено = 0]: 8 мс - person Hossain Mahmood Tuhin; 14.10.2016

Но я не стал добавлять его в путь. Я предпочитаю контролировать это в коде, если есть такая возможность.

  1. В коде установите для свойства webdriver.gecko.driver расположение файла .exe.
  2. Используйте MarionetteDriver
  3. переименуйте файл в «wire.exe» и добавьте его в свой путь.
  4. Отредактировал раздел кодирования для добавления обновлений. После отладки driver = new FirefoxDriver (возможности) обнаружил, что: 1. На шаге был брошен Invoker.class 2. Открыты 3 пустых окна firefox.
  5. Что вы имеете в виду, задавая путь к драйверу? Я имею в виду, вы хотели установить geckoDriver или MarionetteDriver? Кроме того, использование MarionetteDriver говорит о том, что конструктор лишен java. Я использовал предложенные вами строки сразу после System.setProperty () моего кода. Но ошибки произошли.

Firefox 47 и выше мой код выглядит так:

Вы можете проверить обновление кода в следующем примере кода на github: https://github.com/kumrunnaharkeya/sample-automation-selenium

Скачать драйвер марионетки

String currentDir = System.getProperty("user.dir");
String marionetteDriverLocation = currentDir + "/tools/marionette/wires.exe";
System.setProperty("webdriver.gecko.driver", marionetteDriverLocation);
WebDriver driver = new MarionetteDriver();

Разархивируйте его в папку по вашему выбору

person Kumrun Nahar Keya    schedule 19.10.2016