【问题标题】:tagged hook does not work as expected. It runs always标记的钩子没有按预期工作。它总是运行
【发布时间】:2021-06-09 07:59:20
【问题描述】:

我有两个黄瓜功能。其中只有一个被标签@maximize 标记,它使浏览器窗口最大化。我还有一个钩子类,它包含一个 @Before 钩子,它应该只为标签 @maximize 运行。

但正如我所见,无论@Before 注释中的标签定义如何,这个钩子总是运行。如果我删除钩子问题就消失了。下面是 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();
    }

}

【问题讨论】:

    标签: tags cucumber hook feature-detection runner


    【解决方案1】:

    所以问题不在于钩子,而是在浏览器设置中持续存在的 Configuration.startMaximized 设置中。它必须在 @After 钩子中删除。

    // 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-11
      • 1970-01-01
      • 2021-09-21
      • 2023-04-01
      • 2020-05-14
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多