NullPointerException при работе с драйвером селена - chrome в Maven без ChromeDriver.exe - PullRequest
0 голосов
/ 09 апреля 2020

Вот мой класс LocalTestRunner, который содержит метод, который получает WebDriver, а также After и BeforeMethod, который его использует. Но я получаю ошибку. Этот код я нашел на GitHub. Я знаю, что этот код не может найти веб-драйвер. Должен ли я написать путь к нему?

java .lang.NullPointerException в dtapi.dtapiBase.LocalTestRunner.getDriver (LocalTestRunner. java: 27) в dtapi.dtapiBase.LocalAdminTestRunner.loadSignInPage (LocalAdminTestRunner. java: 18) в dtapiLoginTest.AdminPageTest.addRouter (AdminPageTest. java: 47)

1009 * public abstract class LocalTestRunner { public String url = "https://example.com"; public String serverUrlLogout = "https://example.com"; public String adminServerUrl = "https://example.com"; public final Long ONE_SECOND_DELAY = 1000L; public Map<Long, WebDriver> drivers; protected WebDriver driver; public SoftAssert softAssert; public WebDriver getDriver() { WebDriver currentWebDriver = drivers.get(Thread.currentThread().getId()); if (currentWebDriver == null) { currentWebDriver = new ChromeDriver(); currentWebDriver.manage().window().maximize(); currentWebDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); drivers.put(Thread.currentThread().getId(), currentWebDriver); } return currentWebDriver; } @BeforeSuite public void beforeSuite() { WebDriverManager.chromedriver().setup(); } @BeforeClass public void beforeClass(ITestContext context) { drivers = new HashMap<>(); for (Map.Entry<String, String> entry : context.getCurrentXmlTest().getAllParameters().entrySet()) { if (entry.getKey().toLowerCase().equals("url")) { url = entry.getValue(); } if (entry.getKey().toLowerCase().equals("serverUrlLogout")) { serverUrlLogout = entry.getValue(); } } } @AfterClass(alwaysRun = true) public void afterClass() { for (Map.Entry<Long, WebDriver> currentWebDriver : drivers.entrySet()) { if (currentWebDriver.getValue() != null) { currentWebDriver.getValue().quit(); } } } @BeforeMethod public void beforeMethod() { softAssert = new SoftAssert(); getDriver().get(url); } @AfterMethod public void afterMethod(ITestResult result) { if (!result.isSuccess()) { System.out.println("***Test " + result.getName() + " ERROR"); // Take Screenshot, save sourceCode, save to log, prepare report, Return to new ScreenShotHelper(getDriver()).keepPageSourceStatus(); // previous state, logout, etc. } getDriver().get(serverUrlLogout); ApplicationStatus.get().setLogged(false); } ОБНОВЛЕНИЕ Я добавил некоторый код в мой pom. xml, но он все еще не работает

<configuration>
                    <installationDirectory>${project.build.directory}/test-classes</installationDirectory>
                    <!-- <installationDirectory>${project.basedir}/src/test/resources</installationDirectory>-->
                    <keepDownloadedWebdrivers>true</keepDownloadedWebdrivers>
                    <drivers>
                        <driver>
                            <name>chromedriver</name>
                            <!--suppress UnresolvedMavenProperty -->
                            <platform>${os.detected.name}</platform>
                            <!-- <platform>windows</platform> -->
                            <bit>32</bit>
                            <!-- <version>74.0.3729.6</version> -->
                            <!-- <url>https://chromedriver.storage.googleapis.com/74.0.3729.6/chromedriver_win32.zip</url> -->
                            <!-- <version>76.0.3809.126</version> -->
                            <!-- <url>https://chromedriver.storage.googleapis.com/76.0.3809.126/chromedriver_win32.zip</url> -->
                            <!--                            <url>https://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_win32.zip</url> -->
                            <url>https://chromedriver.storage.googleapis.com/80.0.3987.106/chromedriver_win32.zip</url>

                        </driver>
                    </drivers>
                </configuration>

Где должен находиться каталог test-classes находиться? в каталоге sr c в моем проекте?

installationDirectory>${project.build.directory}/test-classes</installationDirectory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...