Tags 标记的挂钩无法按预期工作。它总是在运行

Tags 标记的挂钩无法按预期工作。它总是在运行,tags,cucumber,hook,feature-detection,runner,Tags,Cucumber,Hook,Feature Detection,Runner,我有两个黄瓜特征。其中只有一个被标记为tag@maximize,它最大化了浏览器窗口。我还有hooks类,其中包含一个在hook之前的,它应该只为tag@maximize运行 但正如我所看到的,无论@之前的注释中的标记定义如何,这个钩子都会运行。如果我取下钩子,问题就消失了。以下是hooks类的代码: package hooks; import com.codeborne.selenide.Configuration; import com.codeborne.selenide.WebDri

我有两个黄瓜特征。其中只有一个被标记为tag
@maximize
,它最大化了浏览器窗口。我还有hooks类,其中包含一个在hook之前的
,它应该只为tag@maximize运行

但正如我所看到的,无论
@之前的
注释中的标记定义如何,这个钩子都会运行。如果我取下钩子,问题就消失了。以下是hooks类的代码:

package hooks;


import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.WebDriverRunner;
import io.cucumber.java.After;
import io.cucumber.java.Before;
import org.openqa.selenium.WebDriver;


public class BaseHook
{

    @Before(order = 1)
    public void setup()
    {
        System.out.println("setup done");
    }


    // Also tried @Before(value="@maximize", order=2)
    @Before("@maximize", order=2)
    public void maximize()
    {
        Configuration.startMaximized = true;
    }


    @After
    public void tearDown()
    {
        WebDriver driver = WebDriverRunner.getWebDriver();
        driver.close();
        driver.quit();
    }

}

因此,问题不在挂钩中,而是在浏览器设置中持续存在的Configuration.startMaximized设置中。它必须在@After-hook中移除

// Conf. has to be removed in @After otherwise it persists in browser settings.
@Before("@maximize")
public void maximizeOn()
{
    Configuration.startMaximized = true;
}


@After("@maximize")
public void maximizeOff()
{
    Configuration.startMaximized = false;
}