【问题标题】:Selenide - Create new driver for each Junit 5 TestSelenide - 为每个 Junit 5 测试创建新驱动程序
【发布时间】:2019-05-19 06:43:09
【问题描述】:

我在 Junit 5 中使用 Selenide

硒化物 5.1.0

Junit 5.3.2

当我使用 junit 运行测试时,所有测试都使用相同的驱动程序/浏览器。我想为每个测试创建新的WebDriver 实例。

我可以在 AfterEach 方法中调用 driver.quit()。但我想知道Selenide 中是否有任何内置方法可以处理相同的问题。这样我就不必担心驱动程序初始化。 它应该为每个测试打开一个新的驱动程序并在执行后关闭

【问题讨论】:

  • 是的,你可以在@AfterEach方法中调用driver.quit()。我认为这种方法没有任何问题。您只是不需要任何扩展、规则或 Selenide 中的一些特殊支持。

标签: java selenium gradle junit5 selenide


【解决方案1】:

你可以实现Junit5AfterEachCallback。 这是一个例子:

public class CloseBrowserAfterEachTest implements AfterEachCallback {
    @Override
    public void afterEach(ExtensionContext extensionContext) throws Exception {
        WebDriverRunner.closeWebDriver();
    }
}

然后用@ExtendWith({CloseBrowserAfterEachTest.class})注释你的测试类(或你的基础测试类)

【讨论】:

    【解决方案2】:

    Selenide 中有 JUnit5 扩展:https://github.com/selenide/selenide/tree/master/statics/src/main/java/com/codeborne/selenide/junit5

    其中一个BrowserStrategyExtension 可以在每次测试前重新打开浏览器。

    【讨论】:

      【解决方案3】:

      Selenide 似乎没有官方的 JUnit Jupiter (JUnit 5) 集成:

      https://github.com/selenide/selenide/issues/488

      但是,您可以在 JUnit Jupiter 中实现 Extension,类似于 Selenium 中可用的 Extension

      https://bonigarcia.github.io/selenium-jupiter/

      【讨论】:

        猜你喜欢
        • 2021-04-09
        • 2017-01-19
        • 1970-01-01
        • 2020-03-25
        • 1970-01-01
        • 1970-01-01
        • 2017-08-21
        • 2020-04-07
        • 2021-05-04
        相关资源
        最近更新 更多