硒化物测试失败 org/openqa/selenium/NoSuchSessionException

Selenide Test fails with org/openqa/selenium/NoSuchSessionException

我正在尝试在 mvn 项目中使用 Selenide 和 testng 编写一个 selenium E2E 测试用例。这是我的第一个基本测试用例,我尝试在其中打开 link。但是,当我 运行 使用 Idea intellij 进行测试时,我看到以下错误:

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");

    }

}

和pom.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>

我看到这个错误的原因是对 selenium-java 的依赖,但它存在于项目中。测试失败的原因可能是 运行.

我认为这是由于 selenium-api。它仍然指向旧版本 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>