Селенидный тест завершается неудачно с org / openqa / selenium / NoSuchSessionException - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь написать тестовый пример селена E2E с использованием Selenide и testng в проекте mvn. Это мой первый базовый тестовый сценарий c, где я пытаюсь открыть ссылку. Но я вижу ошибку ниже, когда я запускаю тест с Intellij Idea:

TestNG] Running:
/Users/Prajakta_Mahamuni/Library/Caches/IntelliJIdea2019.2/temp-testng-customsuite.xml
java.lang.NoClassDefFoundError: org/openqa/selenium/NoSuchSessionException
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.<init>(WebDriverThreadLocalContainer.java:39)

Вот мой тестовый пример:

package com.symantec.epmp.scsem.web.management.controllers;

import org.testng.annotations.Test;
import static com.codeborne.selenide.Selenide.*;

public class ConsoleITTest {

    @Test
    public void mdrLogin() {

        open("https://www.google.com");

    }

}

И пом. xml:

<dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>3.141.59</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>xerces</groupId>
                        <artifactId>xercesImpl</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-api</artifactId>
                <version>2.42.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.webdriver</groupId>
                <artifactId>webdriver-selenium</artifactId>
                <version>0.9.7376</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>2.0.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-chrome-driver</artifactId>
                <version>2.42.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-firefox-driver</artifactId>
                <version>2.42.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-ie-driver</artifactId>
                <version>2.42.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-safari-driver</artifactId>
                <version>2.42.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.codeborne</groupId>
                <artifactId>selenide</artifactId>
                <version>5.10.0</version>
                <scope>test</scope>
            </dependency>

Я вижу, что причиной этой ошибки является зависимость от селена - java, однако она присутствует в проекте. В чем может быть причина того, что Тест не запускается.

1 Ответ

1 голос
/ 29 марта 2020

Я думаю, это связано с селен-апи. Это все еще указывает на старую версию 2.42.0. Также проверьте другие драйверы, и если вы столкнулись с той же проблемой, пожалуйста, обновите их в соответствии с браузером, который вы предпочитаете для исполнения

Пожалуйста, обратитесь ниже файл POm, который я использую, который работает нормально для меня.

<properties>
        <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <selenium.hub.url>http://local.example.com:4444/wd/hub</selenium.hub.url>
    <browser>firefox</browser>
    <holdBrowserOpen>false</holdBrowserOpen>
    <webdriver.gecko.driver>${user.home}/bin/geckodriver</webdriver.gecko.driver>
    <webdriver.chrome.driver>${user.home}/bin/chromedriver</webdriver.chrome.driver>
    <surefire.argLine></surefire.argLine>
    <selenium.version>3.0.1</selenium.version>
    <selenide.version>4.0</selenide.version>
</properties>

<prerequisites>
    <maven>3.3</maven>
</prerequisites>

<profiles>
    <profile>
        <id>firefox</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <browser>firefox</browser>
        </properties>
    </profile>
    <profile>
        <id>chrome</id>
        <properties>
            <browser>chrome</browser>
        </properties>
    </profile>
    <profile>
        <id>phantomjs</id>
        <properties>
            <browser>phantomjs</browser>
        </properties>
    </profile>
    <profile>
        <id>ie</id>
        <properties>
            <browser>ie</browser>
        </properties>
    </profile>
    <profile>
        <id>safari</id>
        <properties>
            <browser>safari</browser>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-safari-driver</artifactId>
                <version>${selenium.version}</version>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>htmlunit</id>
        <properties>
            <browser>htmlunit</browser>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-htmlunit-driver</artifactId>
                <version>LATEST</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>ci-server</id>
        <properties>
            <surefire.argLine>-Dremote=${selenium.hub.url}</surefire.argLine>
        </properties>
    </profile>
    <profile>
        <id>local</id>
        <properties>
            <holdBrowserOpen>true</holdBrowserOpen>
        </properties>
    </profile>
</profiles>

<build>
    <defaultGoal>clean test</defaultGoal>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <detail>true</detail>
                <forkCount>1C</forkCount>
                <reuseForks>true</reuseForks>
                <systemPropertyVariables>
                    <browser>${browser}</browser>
                    <holdBrowserOpen>${holdBrowserOpen}</holdBrowserOpen>
                    <webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
                    <webdriver.gecko.driver>${webdriver.gecko.driver}</webdriver.gecko.driver>
                </systemPropertyVariables>
                <argLine>${surefire.argLine}</argLine>
            </configuration>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.13</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>${selenide.version}</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
...