Serenity管理Web驱动程序在最大化窗口中运行



是否可以在webdriver最大化模式下运行每个场景?

我试图使用TestNG注释@BeforeClass添加到Runner类方法中,它只工作过一次,但当场景通过或失败时,浏览器会关闭,然后再次以最小化模式打开。另一方面,我不想将@Before黄瓜注释添加到我的所有特征文件中。我只想在一个地方改变它。

我无法覆盖open()方法,因为它是最终方法。我正在寻找一个解决方案,当我可以在runner类中直接做到这一点,甚至在属性中做得更好。

任何帮助都将不胜感激。

还有:

  1. 我知道如何最大化
  2. 我试图通过扩展PageObject类实现最大化,在自定义类中,直接在构造函数中编写getDriver().manage().window().mimaxize();这个解决方案工作得很好,但对我来说,它看起来并没有那么好,因为它只是对方法的额外调用,不应该每次在pageObject初始化时都调用它
  3. 我也试着在属性中添加浏览器的高度和重量,但我不喜欢这种方式

谢谢。

你试过吗

 driver.manage().window().maximize() 

参考

试试这个:

@WhenPageOpens
public void maximiseScreen() {
    getDriver().manage().window().maximize();
}

在serenity.properties中,您可以使用--start maximization命令来处理chrome。

chrome.switches=--启动最大化

在您的宁静中。属性文件

// To maximize
chrome.switches = """--start-maximized"""
// To Resize
serenity.browser.width=981
serenity.browser.height=644

将其放入项目文件夹的serenity.properties中

 serenity.browser.maximized = true

这将最大限度地提高浏览器的宁静bdd

我不确定你的问题到底是什么,因为你的描述令人困惑。听起来有点像你在一个类中有多个测试,当第一个测试完成时,驱动程序会关闭并作为新实例再次打开。

请尝试使用BeforeMethod而不是BeforeClass。类似的东西

@BeforeMethod(alwaysRun = true)
public void setup()
{
    WebDriver driver;
    driver.manage().window().maximize();
}

最新更新