使用 Cucumber、PicoContainer 和 Conductor Framework 的多态步骤定义
Polymorphic Step Definitions with Cucumber, PicoContainer & Conductor Framework
我遇到的问题是,在每个 Cucumber 场景 运行 之后,机车没有被终止。然后我留下了孤立的 Selenium 进程,例如:
501 75709 1 0 1:29PM ?? 0:00.05 /Users/rich/IdeaProjects/selenium/chromedriver.mac --port=45715
501 75720 1 0 1:29PM ?? 0:00.04 /Users/rich/IdeaProjects/selenium/chromedriver.mac --port=12004
这是我的 PicoContainer 设置 class,因此它会将 Locomotive 实例注入每个 Cucumber 场景(它确实如此):
public class CustomPicoFactory extends PicoFactory {
public CustomPicoFactory() {
addClass(Locomotive.class);
}
}
此条目在我的 cucumber.properties 文件中:
cucumber.api.java.ObjectFactory = CustomPicoFactory
这是一个示例步骤定义 class:
public class BorrowerSteps {
Locomotive locomotive;
public BorrowerSteps(Locomotive locomotive) {
this.locomotive = locomotive;
}
}
在每个场景 运行 之后,我可以调用某种清理方法吗?或者更好的方法来实现我想要实现的目标?
chromedriver 保持打开状态,因为在实例化 Locomotive 对象时,会创建 chromedriver。
在调用 driver.quit()
之前它不会被杀死。为此,您可以调用 locomotive.teardown()
或 locomotive.driver.quit()
我遇到的问题是,在每个 Cucumber 场景 运行 之后,机车没有被终止。然后我留下了孤立的 Selenium 进程,例如:
501 75709 1 0 1:29PM ?? 0:00.05 /Users/rich/IdeaProjects/selenium/chromedriver.mac --port=45715
501 75720 1 0 1:29PM ?? 0:00.04 /Users/rich/IdeaProjects/selenium/chromedriver.mac --port=12004
这是我的 PicoContainer 设置 class,因此它会将 Locomotive 实例注入每个 Cucumber 场景(它确实如此):
public class CustomPicoFactory extends PicoFactory {
public CustomPicoFactory() {
addClass(Locomotive.class);
}
}
此条目在我的 cucumber.properties 文件中:
cucumber.api.java.ObjectFactory = CustomPicoFactory
这是一个示例步骤定义 class:
public class BorrowerSteps {
Locomotive locomotive;
public BorrowerSteps(Locomotive locomotive) {
this.locomotive = locomotive;
}
}
在每个场景 运行 之后,我可以调用某种清理方法吗?或者更好的方法来实现我想要实现的目标?
chromedriver 保持打开状态,因为在实例化 Locomotive 对象时,会创建 chromedriver。
在调用 driver.quit()
之前它不会被杀死。为此,您可以调用 locomotive.teardown()
或 locomotive.driver.quit()