Объединение нескольких объектных файлов страниц в Eclipse / Cucumber / Java - PullRequest
0 голосов
/ 04 июля 2018

У меня проблемы со связыванием нескольких файлов объектов страницы и определений шагов.

Я импортировал следующее, которое очень сильно отредактировано, потому что это рабочий код:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...