我无法将多个页面对象文件和步骤定义串联在一起。
我已导入以下内容,由于它是工作代码,因此对其进行了高度编辑:
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
。