Serenity管理webdriver以在最大化窗口

时间:2016-04-05 14:22:15

标签: java selenium thucydides cucumber-serenity

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

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

我无法覆盖open()方法,因为它是最终的。我可以在跑步者课程中找到解决方案,或者直接在属性方面做得更好。

任何帮助将不胜感激。

此外:

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

5 个答案:

答案 0 :(得分:1)

你试过吗

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

reference

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

由于您的描述令人困惑,我不确定您的问题究竟是什么。听起来好像你在一个类中有多个测试,当第一个测试结束时,驱动程序关闭并再次作为新实例打开。

尝试使用BeforeMethod而不是BeforeClass。像

这样的东西
@BeforeMethod(alwaysRun = true)
public void setup()
{
    WebDriver driver;
    driver.manage().window().maximize();
}

答案 3 :(得分:0)

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

chrome.switches = --start-maximized

答案 4 :(得分:0)

在您的 serenity.properties 文件中

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

// To Resize
serenity.browser.width=981
serenity.browser.height=644