java - cucumber 'After' 钩子(Hook)不起作用?

标签 java selenium-webdriver webdriver cucumber

cucumber “之后” Hook 不起作用?

我有一个 DriverFactory 类,它执行下面列出的设置等,但是一旦执行了所有步骤,位于 DriverFactory 中的“Cucumber After”方法似乎不起作用?

我想要一个主钩子(Hook)类“之前”“之后”等,它将停止步骤文件中的代码重复

public class DriverFactory  {
protected WebDriver driver;
protected BasePage basePage;
protected LoginPage loginPage;

public WebDriver getDriver() {
    if(driver == null) {
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "\\src\\test\\java\\resources\\other\\chromedriver.exe");
        this.driver = new ChromeDriver();
        this.driver.manage().window().maximize();
        this.driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);
    }
    return this.driver;
}

public WebDriver returnDriver() {
    return this.driver;
}


@After
public void test() throws Throwable {
    this.driver.close();
    this.driver.quit();
}

}

public class LoginSteps {
DriverFactory driverFactory = new DriverFactory();
WebDriver driver = driverFactory.getDriver();

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

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

最佳答案

我遇到了同样的问题 - 我的 @Before Hook 正常工作,但我的 @After Hook 不起作用。事实证明,这是由于一个简单的导入问题 - 可能是由于 Intellij 向我提供导入列表时选择了错误的选项造成的。我选择了 junit.After 类而不是 cucumber.api.Java.After 类:

import cucumber.api.java.Before;
import cucumber.api.java8.En;
import org.junit.After;
import org.openqa.selenium.By;

关于java - cucumber 'After' 钩子(Hook)不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43984351/

相关文章:

java - 对象数组的 Easymock 匹配器

java - 查找 WebElements,最佳实践

java - driver.navigate().to ("url") 在 Chrome 64 和驱动程序 chrome 2.35 中不起作用;

python - WebDriverException : Message: 'The browser appears to have exited before we could connect. 输出为:错误:未指定显示

java - 通过代码对齐 LinearLayout 中的 Imageview

java - 如何检查文件是否为图像

java - 如何在maven中创建多模块项目的汇编

python - 在 Selenium Python 中获取事件元素

javascript - 单击新数据后刷新页面时 Protractor e2e

python - 如何在 python 中为 chrome 的 Selenium Webdriver 设置 luminati 代理?