- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里发现了一些类似的问题( SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()? (Selenium)
org.openqa.selenium.NoSuchSessionException: Session ID is null. Using WebDriver after calling quit()?)但他们都没有帮助我解决我的问题。任何帮助或建议将不胜感激。
就我而言,我使用的是 TestNG。我已经创建了主类
package base;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
public class MainClass {
public WebDriver driver;
public Properties CONFIG;
public Properties XPATH;
@BeforeSuite
public void initialization() throws IOException {
String chromeDriverLocation = System.getProperty("user.dir")+"/src/main/java/driverlocation/chromedriver.exe";
System.setProperty("webdriver.chrome.driver", chromeDriverLocation);
driver = new ChromeDriver();
System.out.println("Web Driver initilization has started...");
System.out.println("In the before suite...");
CONFIG = new Properties();
String configLocation = System.getProperty("user.dir")+"/src/main/java/base/Config.properties";
FileInputStream ip = new FileInputStream(configLocation);
CONFIG.load(ip);
XPATH = new Properties();
String xpathLocation = System.getProperty("user.dir")+"/src/main/java/base/xpath.properties";
FileInputStream xpathIp = new FileInputStream(xpathLocation);
XPATH.load(xpathIp);
}
@AfterSuite
public void tearDown() {
System.out.println("Web Driver is closing...");
System.out.println("it is epic...");
driver.quit();
}
}
我有一个测试类,它扩展了 Main.Class
package Test.TileSearch;
import org.testng.annotations.Test;
import base.MainClass;
import org.testng.annotations.BeforeMethod;
import org.openqa.selenium.By;
import org.testng.annotations.AfterMethod;
public class Tile1City1 extends MainClass {
@BeforeMethod
public void setup() throws Exception {
driver.get(CONFIG.getProperty("urlcentura"));
driver.manage().window().maximize();
}
@AfterMethod
public void tearDown() {
driver.quit();
}
@Test
public void main1() throws Exception
driver.findElement(By.xpath().click();
driver.findElement(By.xpath().click();
driver.findElement(By.xpath().click();
if(!driver.findElements(By.partialLinkText("Tile")).isEmpty()){
System.out.println("Tile is available there");
}else{
System.out.println("Tile is not available there");
}
}
@Test
public void main1() throws Exception
driver.findElement(By.xpath().click();
driver.findElement(By.xpath().click();
driver.findElement(By.xpath().click();
if(!driver.findElements(By.partialLinkText("Tile")).isEmpty()){
System.out.println("Tile is available there");
}else{
System.out.println("Tile is not available there");
}
}
}
控制台出现错误
[RemoteTestNG] detected TestNG version 6.13.1
Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 11302
Only local connections are allowed.
Feb 06, 2018 8:13:19 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Web Driver initilization has started...
In the before suite...
Abaco is available there
FAILED CONFIGURATION: @BeforeMethod setup
org.openqa.selenium.NoSuchSessionException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
System info: host: 'EARL', ip: '192.168.1.85', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:131)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:325)
at Test.CenturaSearch.AbacoMontreal.setup(AbacoMontreal.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:451)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:516)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:707)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:979)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1116)
at org.testng.TestNG.runSuites(TestNG.java:1028)
at org.testng.TestNG.run(TestNG.java:996)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
SKIPPED CONFIGURATION: @AfterMethod tearDown
PASSED: main
SKIPPED: main1
org.openqa.selenium.NoSuchSessionException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
System info: host: 'EARL', ip: '192.168.1.85', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:131)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:325)
at Test.CenturaSearch.AbacoMontreal.setup(AbacoMontreal.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:451)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:516)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:707)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:979)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1116)
at org.testng.TestNG.runSuites(TestNG.java:1028)
at org.testng.TestNG.run(TestNG.java:996)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
===============================================
Default test
Tests run: 2, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 1
===============================================
===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 1
===============================================
只有一个测试正在运行,其他测试总是会跳过。基本上问题是我正在使用 WebDriver 的静态属性,该属性不应在不同的测试运行之间共享。有人知道如何解决这个问题吗?
最佳答案
您似乎正在退出 Tile1City1 中的驱动程序
@AfterMethod
public void tearDown() {
driver.quit();
}
因此,您在 @BeforeSuite 中打开驱动程序,然后在一次测试后退出它,并且不再重新打开它。我可能误读了代码,但这似乎就是正在发生的事情。
如果您希望每个测试都有一个新的驱动程序,则还需要在 @BeforeMethod 中打开每个测试的驱动程序。
如果您想在每次测试中重复使用相同的驱动程序,请删除我从 Tile1City1 引用的代码
关于java - 配置失败 : @BeforeMethod setup org. openqa.selenium.NoSuchSessionException : Session ID is null. 调用 quit() 后使用 WebDriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655414/
我正在尝试运行我的第一个机器人测试,但无论我尝试什么,我都会遇到以下异常: org.openqa.selenium.NoSuchSessionException 我的测试看起来像 *** Settin
我正在尝试在 mvn 项目中使用 Selenide 和 testng 编写一个 selenium E2E 测试用例。这是我的第一个基本测试用例,我尝试打开一个链接。但是,当我使用 Idea intel
我正在将 Docker 从机与 jenkins 一起使用,并使用 jenkins 运行 Selenium 测试。我收到 NoSuchSessionException,该异常在驱动程序崩溃后启动。 or
我正在尝试使用 TestNg 非并行地在 Chrome 和 Firefox 中执行我的代码。在第一个测试“Chrome”正常工作时,第二个测试“Firefox”浏览器打开,但抛出以下异常“org.op
**出现以下异常:org.openqa.selenium.NoSuchSessionException: session ID 为空。调用 quit() 后使用 WebDriver?在这里,我使用 L
获取 NoSuchSessionException session ID 为空。调用 quit() 后使用 WebDriver?通过跨浏览器并行运行 java 测试时出错。 测试执行看起来没问题,但最
我已经进行了一些搜索,但仍然遇到同样的问题。我相信这可能是由于我的 webdriver 是静态的?我不太确定... 在我的主类中,我包含了@BeforeTest 和@AfterTest。@Before
我使用 selenium + TestNG + Appium 在移动设备上使用关键字框架模型执行自动化 - 在我的 MAC 操作系统(eclipse IDE)中的模拟器设备上, 通过.pom文件使用以
我遇到了一个问题,我的测试在浏览器中按方法执行操作,但在 TestNG 中显示为失败,并出现标题中提到的错误。请查看并帮助纠正此问题。我对自动化还很陌生,没能解决这个问题。 基类: import ja
我的测试项目在 BaseTest.class 中有 @BeforeClass 和 @AfterClass: public class BaseTest { @BeforeClass(groups
在我的管道中运行 selenium 时出现“没有此类 session 异常”。我发现很多与之相关的解决方案,但没有一个对我有用。有什么帮助或想法吗?异常跟踪: org.openqa.selenium.
我在这里发现了一些类似的问题( SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()?
我也在尝试连接到 Chrome 版本 76 和 chromedriver 76! 我已经尝试了 chromedriver 的所有版本,但似乎没有人在工作 org.openqa.selenium.NoS
我正在尝试使用 Behat/Mink 测试 Symfony3 Web 应用程序和 Selenium2Driver这样我也可以测试 Javascript 功能。 该应用程序在 docker 容器中运行,
有人可以帮忙解决以下问题吗,我在 eclipse 上设置了一个 Maven 项目,每次运行测试时,它在 chrome 上运行良好,但在 junit 控制台上出现以下错误: org.openqa.sel
我是一名优秀的程序员,十分优秀!