Невозможно получить доступ к хукам огурца @After - PullRequest
0 голосов
/ 04 августа 2020

Cucumber 'After' У меня не работает крючок. У меня есть BaseClass, который инициализирует драйвер.

public class BaseClass {
public  WebDriver driver ;

protected  BaseClass () {
    InitialiseParameter();
    InitialiseDriver();
}

У нас есть другой класс - PageBase, который расширен другим классом, имеющим код определения Step.

public abstract class PageBase {
public WebDriver driver = null;

public PageBase(WebDriver driver) {
    this.driver = driver;
}

мы расширяем класс PageBase как поток:

public class Search_TransmissionLines extends PageBase{


public Search_TransmissionLines(WebDriver driver) {
    super(driver);
}

PhotoGallary photogallary =new PhotoGallary(driver);
Utilities util = new Utilities(driver);

Код работает нормально для файлов функций, все шаги выполняются успешно, но когда дело доходит до выполнения @After хуков, это не удается. Я создал для него класс хуков

public class Hooks extends PageBase{

public Hooks(WebDriver driver) {
    super(driver);
}
@After
public void CloseBrowser() {
    BaseClass.isBrowserOpened = false;
    driver.quit(); 
}   

} Он отображает следующую ошибку: Ошибка:

org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: com.qsi.arcgisservice.Hooks has unsatisfied dependency 'interface org.openqa.selenium.WebDriver' for constructor 'public com.qsi.arcgisservice.Hooks(org.openqa.selenium.WebDriver)' from org.picocontainer.DefaultPicoContainer@2cfbeac4:14<|

    at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:191)
    at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:110)
    at org.picocontainer.injectors.ConstructorInjector.access$100(ConstructorInjector.java:51)
    at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:331)
    at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
    at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
    at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
    at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
    at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
    at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
    at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
    at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)

Я использую java и огурец v4, выполнение его с помощью теста JUnit.

Не уверен, что ломается, может кто-нибудь помочь мне в этом ... так что, если есть какая-либо альтернатива, которая также работает для меня. Спасибо

...