Я получаю сообщение об ошибке: cucumber.runtime.CucumberException: Failed to instantiate class steps.MyStepdefs
Вот что я пытаюсь сделать.Мои хуки находятся в пакете steps
:
public class hooks {
public static WebDriver webDriver;
@Before
public static void ChromeDriverSetup() {
System.out.println("Creating new ChromeDriver instance...");
webDriver = new ChromeDriver();
System.out.println("Hello from hooks!");
}
Выше выполнено ...
Но тестовый класс MyStepdefs
не выполняется (он также находится в steps
пакет) и я получаю вышеуказанную ошибку.
public class MyStepdefs {
ProductPage productPageObjects = new ProductPage();
@Given("I purchase {int} items of the same product")
public void iPurchaseItemsOfTheSameProduct(int qty) {
System.out.println("Hello from MySteps!");
productPageObjects.Visit();
productPageObjects.ClickPlusQtyElement(qty);
}
package pageobjects;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import static steps.hooks.webDriver;
public class ProductPage {
private WebElement totalQtyElement = webDriver.findElement(By.cssSelector(".sanitized"));
private WebElement plusQtyElement = webDriver.findElement(By.cssSelector(".sanitized"));
public void Visit() {
webDriver.get("https://www.example.com");
}
public String ClickPlusQtyElement(int qty) {
int minAmount = 1;
while (minAmount < qty)
{
plusQtyElement.click();
minAmount ++;
}
System.out.println("The amount is now: " + totalQtyElement.getText());
return totalQtyElement.getText();
}
}
В IntelliJ мой glue
установлен как steps
.У меня также есть класс RunCucumberTest
в пакете steps
.
package steps;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(tags = "not @ignore", plugin = {"pretty", "html:target/cucumber"})
public class RunCucumberTest {}
Почему он не выполняет MyStepsdefs
?
stacktrace: https://pastebin.com/X5KhHfuP
Обновление : Когда я комментирую вызовы ProductPage
, строка System.out.println("Hello from MySteps!");
выполняется.Так что есть проблема с этим конкретным вызовом.