SessionNotFoundException:Session ID 为 null。在调用 quit() 后使用 WebDriver?(硒)
我正在尝试使用Cucumber / Java编写一些硒自动化UI测试。如果我的功能文件中只有一个测试,则一切正常。但是如果我添加第二个测试,我会在:driver.get()
org.openqa.selenium.remote.SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()?
Build info: version: '2.51.0', revision: '1af067dbcaedd7d2ab9af5151fc471d363d97193', time: '2016-02-05 11:20:57'
基本上,我在一个包中初始化 InitializeWebdriver 类上的 webdriver 变量,然后在其他(步骤定义)类中引用它。我确实将下面的步骤定义列为 InitializeWebdriver 类的一部分,并且它工作正常(直到转到不同类中的不同步骤)。因此,我将该步骤移动到CommonSteps.java文件中,以查看它是否会失败,并且它确实失败了。所以现在我只是卡住了。我正在考虑在 中做一个,如果已经初始化,做一个不同的动作,但我不知道其他的动作会是什么。if (driver.equals(null))
@Before
这是我的代码:
tests.feature
Feature: Two tests
Background:
Given I navigate to "http://www.google.com"
Scenario: Test one
When something happens
Scenario: Test two
When something else happens
InitializeWebDriver.java
public class InitializeWebDriver {
public static WebDriver driver = null;
@Before
public void beforeScenario() {
driver = new ChromeDriver();
}
@After
public void afterScenario() {
driver.quit();
}
}
常见步骤.java
import myPackage.InitializeWebDriver;
public class CommonSteps {
static WebDriver driver = InitializeWebDriver.driver;
@Given("^I navigate to \"([^\"]*)\"$")
public void i_navigate_to(String url) {
driver.get(value);
}
谢谢!