Полиморфные определения шагов с помощью структуры Cucumber, PicoContainer и Conductor
Проблема, с которой я сталкиваюсь, заключается в том, что "Локомотив" не останавливается после каждого сценария "Огурец". Тогда я остаюсь с осиротевшими процессами 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;
}
}
Есть ли какой-нибудь метод очистки, который я могу вызвать после запуска каждого сценария? Или лучший способ сделать то, что я пытаюсь достичь?
1 ответ
Хромедрайвер остается открытым, потому что при создании экземпляра объекта "Локомотив" хромудривер создается.
Он не убит до driver.quit()
называется. Для этого вы можете позвонить locomotive.teardown()
или же locomotive.driver.quit()