У меня проблемы со связыванием нескольких файлов объектов страницы и определений шагов.
Я импортировал следующее, которое очень сильно отредактировано, потому что это рабочий код:
package <the package my step definition file is in>
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import <the other project my team created>.browsercapabilities.Browser;
import <the other project my team created>.Browsers;
import <a package a different step definition file is
in>.addNewContact.AddNewContactStepDefs;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import <the other project my team created>.webcomponents.WebButton;
import <my page objects package>.authenticationpages.CommandLoginPage;
import <my page object package>ThirdPageObjectFile;
import <my page object package>.SecondPageObjectFile;
import <my page object package>.FirstPageObjectFile;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
public class ThirdPageStepDefs extends BrowserBase {
private static final Logger LOG =
LoggerFactory.getLogger(ThirdPageStepDefs.class);
private WebDriver driver = mainBrowser().getDriver();
private Browser browser = Browsers.getBrowser();
private WebDriverWait wait = new WebDriverWait(driver,10);
LoginPage login = new LoginPage (browser);
SecondPageObjectFile contact = new SecondPageObjectFile (browser);
FirstPageObjectFile searchContact = new FirstPageObjectFile (browser);
ThirdPageObjectFile deal = new ThirdPageObjectFile (browser);
@Then("^I click the contacts icon$")
public void i_click_the_contacts_icon() throws Throwable {
contact.get_contact_link().clickLink();
}
Я получил ошибку инициализации, когда запустил код бегуна, говорящий о том, что бегун не может создать экземпляр моего экземпляра ThirdStepDefFile, т. Е. "Не удалось создать экземпляр класса"
Мой бегун работает нормально:
package <Utility package>.utilities;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import cucumber.api.testng.AbstractTestNGCucumberTests;
@RunWith(Cucumber.class)
@CucumberOptions(
features="src\\test\\resources\\<my feature folder>",
plugin={"pretty", "html:target/cucumber-html-report",
"json:target/cucumber.json"},
glue= "<My step def folder>",
tags = "@<my tags>"
)
public class ComUITestRunner extends AbstractTestNGCucumberTests {
}
У меня есть еще много строк в сценариях, которые я закомментировал, и, так как я получал ошибку инициализации, я отредактировал, чтобы устранить неполадки следующим образом:
-Комментируйте все методы (зеленый)
Оставьте все методы в (красном)
Оставьте один метод (красный)
Когда у меня есть хотя бы один метод, который не закомментирован, я получаю ошибку.
Мой проект представляет собой серию экранов, на которые пользователь должен войти, чтобы войти в систему. Экран входа в систему, первый экран, второй экран и третий экран имеют свои собственные объекты страниц. В конце концов я хочу абстрагировать эти экраны от основного проекта, который разделяют все подпроекты, поскольку они будут предварительными условиями для всего остального. Соединение этих экранов вместе, похоже, не удастся, и я думаю о рефакторинге всего этого.
Я также новичок в Java / Eclipse, поэтому возможно, что я не вижу трассировку стека правильно. Например, внизу моего экрана Junit написано «еще 62» строки, детализирующие сбой, который я не могу увидеть. Я попытался отладить безрезультатно, и я нажал на схему в левой части вывода junit, и когда я завис над ним, он говорит, что Test Class Not Found