Selenium + TestNG + Java -> org.openqa.selenium.NoSuchSessionException: 无效的会话 ID



我试图一个接一个地一起运行所有测试,但我收到了这个错误消息。

我使用的是TestNG、Selenium 4.1.2、Java、chromedriver managed byimport io.github.bonigarcia.wdm.WebDriverManager;这是我的BaseClass代码,(我在其中创建setup((方法(:

@BeforeMethod(alwaysRun = true)
public void before(@Optional("chrome") String browser) {
try {
WebDriverManager.chromedriver().setup();
WebDriverManager.firefoxdriver().setup();

if(browser.equals("chrome")){
driver = new ChromeDriver();
}else{
driver = new FirefoxDriver();
}

driver.get(URL);
driver.manage().window().maximize();

} catch (Exception e) {
e.printStackTrace();
}

}
@AfterMethod(alwaysRun = true)
public void after() {
try {
driver.close();
} catch (Exception e) {
e.printStackTrace();
}
}

我有两个类,如果我运行所有的测试,它们只运行并通过每个类的第一个测试,对于其他类,只向我发送相同的错误org.openqa.selenium.NoSuchSessionException: invalid session id

注意:如果我手动一个接一个地运行,它会工作。。!!但如果我跑步,例如";maven清洁测试";它将在POM中运行一个xml,或者右键单击xml,出现相同的错误消息,我已经搜索过了,但都提到了driver.close() or driver.quit()的一些内容,一切都正常。任何帮助都可能很棒:D

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Portafolio-Selenium-Project</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>13</maven.compiler.source>
<maven.compiler.target>13</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.5</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/1.8.10/aspectjweaver-1.8.10.jar"
</argLine>
<useSystemClassLoader>false</useSystemClassLoader>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/config.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.10</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>

testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Selenium Project - Tests Cases">
<test name="Header Page Tests">
<parameter name="browser" value="chrome"/>
<classes>
<class name="Tests.HeaderPageTests" />
</classes>
</test>
<test name="Register Page Tests">
<parameter name="browser" value="chrome"/>
<classes>
<class name="Tests.RegisterPageTests" />
</classes>
</test>
</suite>

After套件中的driver.close((可能会解决这个问题,因为在启动其他测试时没有会话。

,你能换一下吗

@AfterSuite  
public void after_suite()  
{  
try {
driver.close();
} catch (Exception e) {
e.printStackTrace();
} 

}  

相关内容

  • 没有找到相关文章

最新更新