Wie erstelle ich einen MasterStep/BaseStep, wenn die meine Unterschrittdateien bereits eine Klasse erweitern?Wie erstelle ich einen MasterStep/BaseStep, wenn die meine Unterschritt-Dateien bereits eine Klasse erweitern?
Beispielcode für einen meiner Schritte Dateien:
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
Ich brauche die folgenden Tags/Code unten verwenden, aber ich nicht in jedem Schritt Klasse/Datei wiederholt werden soll und bei dem Versuch, die Gurke Tags hinzuzufügen in meiner DriverFactory im nicht erlaubt, da Gurke dosnt Ihnen erlaubt, Tags innerhalb der erweiterten Klassen hinzuzufügen.
@After
public void close_browser_window(Scenario scenario) throws Exception {
if (scenario.isFailed()) {
scenario.embed(((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES), "image/png");
}
}
Danke für Ihre Hilfe
Denken Sie darüber nach, warum 'LoginSteps' erstreckt' DriverFactory'. Ist es wirklich eine Art 'DriverFactory'? Erwägen Sie die Verwendung von Komposition statt Vererbung. – azurefrog
@azurefrog danke, aber ich brauche einen Ort, um meine anderen Klassen zu initialisieren, \t \t basePage = PageFactory.initElements (Treiber, BasePage.class); – Gbru
Sie müssen den Nach-Hook-Code nicht in allen Klassen wiederholen. Erwähnen Sie es in jeder Klasse und Gurke wird es aufnehmen. Für jedes Szenario wird eine neue Instanz aller Step-Definition- und Hook-Klassen erstellt. – Grasshopper