1

我遇到的问题是在每个 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 设置类,以便它将 Locomotive 的实例注入每个 Cucumber 场景(它确实如此):

    public class CustomPicoFactory extends PicoFactory {

    public CustomPicoFactory() {
        addClass(Locomotive.class);
    } 
}

此条目在我的 cucumber.properties 文件中:

cucumber.api.java.ObjectFactory = CustomPicoFactory

这是一个示例步骤定义类:

public class BorrowerSteps {

    Locomotive locomotive;

    public BorrowerSteps(Locomotive locomotive) {
        this.locomotive = locomotive;
    }
}

在每个场景运行后我可以调用某种清理方法吗?还是一种更好的方式来做我想要实现的目标?

4

1 回答 1

0

chromedriver 保持打开状态,因为在实例化 Locomotive 对象时,会创建 chromedriver。

在被调用之前它不会被杀死driver.quit()。为此,您可以致电locomotive.teardown()locomotive.driver.quit()

于 2016-01-13T15:28:48.873 回答