2017-04-25 66 views
0

如果我的子步骤文件已经扩展了一个类,如何创建一个MasterStep/BaseStep?如果我的子步骤文件已经扩展了一个类,如何创建一个MasterStep/BaseStep?

为我的脚步文件中的一个示例代码:

public class LoginSteps extends DriverFactory { 

WebDriver driver = getDriver(); 

@Given("^User navigates to the \"([^\"]*)\" website$") 
public void user_navigates_to_the_website(String url) throws Throwable { 
    basePage.loadUrl(url); 
} 

@And("^User entered the \"([^\"]*)\" username$") 
public void user_entered_the_username(String username) throws Throwable { 
    loginPage.setUsername(username); 
} 

@And("^User entered the \"([^\"]*)\" password$") 
public void user_entered_the_password(String password) throws Throwable { 
    l 

我需要使用下面的下面的标签/代码,但我不希望每一步类/文件中的重复和尝试添加黄瓜标签时在我的DriverFactory im不允许,因为Cucumber dosnt允许你在扩展类中添加标签。

@After 
public void close_browser_window(Scenario scenario) throws Exception { 
    if (scenario.isFailed()) { 
     scenario.embed(((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES), "image/png"); 
    } 
} 

感谢您的帮助

+1

想想为什么'LoginSteps'延伸'DriverFactory'。它真的是一种'DriverFactory'吗?考虑使用组合而不是继承。 – azurefrog

+0

@azurefrog谢谢,但我需要一个位置来初始化我的其他类,\t \t basePage = PageFactory.initElements(driver,BasePage.class); – Gbru

+0

你不需要重复所有类中的钩子代码之后。在任何课堂上提及它,黄瓜会把它捡起来。对于每个场景,创建所有步骤定义和钩子类的新实例。 – Grasshopper

回答

1

创建延伸DriverFactory,那么你的LoginSteps BaseSteps延伸BaseSteps:

public class BaseSteps extends DriverFactory { 

    WebDriver driver = getDriver(); 

    @After 
    public void close_browser_window(Scenario scenario) throws Exception { 
     if (scenario.isFailed()) { 
     scenario.embed(((TakesScreenshot) 
     driver).getScreenshotAs(OutputType.BYTES), "image/png"); 
} 

} 
+0

你不允许扩展包含步骤定义或钩子的类 – Grasshopper

+0

@Rushby你传说中的谢谢分配,已经完成了! – Gbru

+0

非常高兴我可以帮助:) @Gbru – Rushby

相关问题