Вероятно, нельзя передать "драйвер" в качестве параметра в классе stepdefs

Итак, у меня возникла проблема с запуском моего тестового фреймворка, написанного огурцом (я бы сказал, что я только начинаю). Вот код https://github.com/nokedajunky/cucumber2

Когда я запускаю файл "Register.feature", он не работает:

Error:(13, 55) java: cannot find symbol
  symbol:   variable driver
  location: class stepdefs.RegisterStepDefs

Я что не так с классом «RegesterStepDefs», где я инициализирую объект LandingPage - я не могу передать «драйвер» в качестве параметра. Похоже на ошибку, с которой я долго не справляюсь. Любые предложения приветствуются

Класс BasePageObjectSetUp на страницах пакета;

public class BasePageObjectSetUp {

    private WebDriver driver;

    public BasePageObjectSetUp(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }

    public WebDriver getDriver() {
        return driver;
    }
}

Класс LandingPage на страницах пакета;

public class LandingPage extends BasePageObjectSetUp {

    @FindBy(xpath = "//@[//div[contains(@class,'menu-body')]//span[contains(text(),'Logowanie')]]")
    private WebElement buttonLogowanie;

    @FindBy(xpath = ".//*[@class=register-wrapper]")
    private WebElement buttonRejestracja;


    // calling the inherited construtor from PageObject class
    public LandingPage(WebDriver driver){
        super(driver);
    }


    public void clickButtonRejestracja() throws InterruptedException {
        //WebDriverWait wait = new WebDriverWait(getDriver(), 30);
        //wait.until(ExpectedConditions.elementToBeClickable(buttonRejestracja));
        Thread.sleep(5000);
        buttonRejestracja.click();
    }
}

Класс LandingPage в пакете stepdefs;

public class BaseSetUp {

    private WebDriver driver;

    @Before
    public void setUp() {
        System.setProperty("webdriver.chrome.driver",System.getProperty("user.dir")+"\\src\\main\\resources\\drivers\\chromedriver.exe");

        //Disable geo localization popup
        ChromeOptions options = new ChromeOptions();
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("profile.managed_default_content_settings.geolocation", 2);
        options.setExperimentalOption("prefs", prefs);

        driver = new ChromeDriver();

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();

        driver.get("http://www.vozilla.pl");
    }

    @After
    public void cleanCookies() {
        driver.manage().deleteAllCookies();
        driver.close();
    }

}

RegisterStepDefs класс в пакете stepdefs;

public class RegisterStepDefs {

    private LandingPage landingPage = new LandingPage(driver); **<<<< I got a problem here**

    @Given("^User navigates to the register page one$")
    public void userNavigatesToTheRegisterPageOne() throws InterruptedException {
        landingPage.clickButtonRejestracja();
    }
}

Пожалуйста, возьмите Тур и прочтите документацию в Центр помощи. В частности, вы должны прочитать о как задать хороший вопрос и о том, какие вопросы по теме здесь, в SO.

azurefrog 12.10.2018 21:23

В частности, обратите внимание, что № 1 в списке не по теме упоминает, что «Вопросы, требующие помощи при отладке (« почему этот код не работает? ») Должны включать желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для ее воспроизведения. в самом вопросе. "

azurefrog 12.10.2018 21:24

Хотя ссылки на сторонний код для справочных целей - это нормально, на ваш вопрос должен быть дан ответ по существу, и люди не должны переходить по этим ссылкам.

azurefrog 12.10.2018 21:25

Слишком много работы, чтобы напечатать все это, но вы должны использовать внедрение зависимостей. Огурец поддерживает это

M.P. Korstanje 13.10.2018 20:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
55
0

Другие вопросы по теме