1

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

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

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

任何帮助将不胜感激。

还:

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

谢谢。

4

6 回答 6

2

你有没有尝试过

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

参考

于 2016-04-05T15:51:04.373 回答
1

在您的serenity.properties文件中

// To maximize
chrome.switches = """--start-maximized"""

// To Resize
serenity.browser.width=981
serenity.browser.height=644
于 2021-04-12T19:10:01.183 回答
1

在 serenity.properties 中,您可以对 chrome 使用 --start-maximized 命令。

chrome.switches = --start-maximized

于 2019-09-06T08:00:24.517 回答
1

尝试这个:

@WhenPageOpens
public void maximiseScreen() {
    getDriver().manage().window().maximize();
}
于 2017-07-20T06:51:57.310 回答
0

把它放在项目文件夹中的 serenity.properties

 serenity.browser.maximized = true

这将在 serenity-bdd 中最大化浏览器

于 2022-02-15T12:18:21.823 回答
0

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

尝试使用 BeforeMethod 而不是 BeforeClass。就像是

@BeforeMethod(alwaysRun = true)
public void setup()
{
    WebDriver driver;
    driver.manage().window().maximize();
}
于 2016-04-07T03:06:45.170 回答