NullPointerException в «новом RemoteWebDriver (srv c .getUrl (), параметры)» - PullRequest
0 голосов
/ 03 мая 2020

У меня есть три класса, как показано ниже:

И когда я запускаю тест как TestNG из «Тестов. java», я получаю исключение java .lang.NullPointerException:

ПРИМЕЧАНИЕ :

-Он успешно выбирает имя браузера 'chrome' из файла .properties.

-Если я отбрасываю класс 'Tests. java' и перемещаю метод @Test к классу 'LaunchBrowserTemp. java' и добавьте оставшиеся соответствующие теги (т. е. BeforeClass, BeforeMethod, AfterClass, AfterMethod) к соответствующим методам в LaunchBrowserTemp. java ', он работает нормально. Сбой только в том случае, если я оставляю аннотации testng в классе 'Tests. java'.

src \ main \ java \ utilities \ LaunchBrowserTemp. java


    public class LaunchBrowserTemp {

          private static ChromeDriverService srvc;
          private static WebDriver driver;
          private static String browser = getProperties("selenium.browser");
          private static final String baseBrowserPath = "src\\main\\resources\\drivers\\";
          private static ChromeOptions options;

          public static void initBrowser() throws Exception {
              switch (browser.toLowerCase()){
              case "chrome":
                  options = new ChromeOptions();
                  options.addArguments("--start-maximized");
                  options.addArguments("--disable-extensions");
                  options.setAcceptInsecureCerts(true);
                  srvc = new ChromeDriverService.Builder()
                        .usingDriverExecutable(new File(baseBrowserPath + "chromedriver.exe"))
                        .usingAnyFreePort()
                        .build();
                  srvc.start();
                  break;
              default:
                  throw new Exception("Browser Not handled in code!");
              }

          }

          public static void stopDriverService() {
            srvc.stop();
          }

          public void startDriver() {
            driver = new RemoteWebDriver(srvc.getUrl(), options);
          }

          public void endDriver() {
            driver.quit();
          }

          public static WebDriver driver() {
              return driver;
          }

    }

src \ main \ java \ utilities \ LoadProperties. java


    public class LoadProperties {

        public static String getProperties(String propName) {
            Properties prop = new Properties();
            try {
                FileInputStream fis = new FileInputStream("src/main/resources/config.properties");
                prop.load(fis);
            } catch (Exception e){}
            return prop.getProperty(propName);

        }

    }


src \ test \ java \ Tests. java


    public class Tests {

        LaunchBrowserTemp obj = new LaunchBrowserTemp();

        @BeforeClass
        public void init() throws Exception{
            LaunchBrowserTemp.initBrowser();
        }

        @BeforeTest
        public void start(){
            obj.startDriver();
        }

        @Test
        public void openUrl(){
            driver().get("https://www.google.com");
        }

        @AfterTest
        public void teardown(){
            obj.endDriver();
        }

        @AfterClass
        public void terminate() {
            LaunchBrowserTemp.stopDriverService();
        }

    }

Снимок экрана ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...