标记的钩子无法按预期工作.它总是运行



我有两个黄瓜特性。其中只有一个被最大化浏览器窗口的标记@maximize标记。我还有一个hooks类,它包含一个@Beforehook,应该只为标签@maximate运行。

但正如我所看到的,无论@Before注释中的标记定义如何,这个钩子总是运行的。如果我去掉钩子,问题就消失了。这是钩子类的代码:

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钩子中移除。

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

相关内容

  • 没有找到相关文章

最新更新