如何解决标记的钩子不能按预期工作它总是运行
我有两个黄瓜特征。其中只有一个被标记 @maximize
标记,它使浏览器窗口最大化。我还有一个 hooks 类,它包含一个 @Before
钩子,它应该只为标签 @maximize 运行。
但正如我所见,无论 @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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。