2017-04-25 63 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

相關問題