You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenide如何避免为后续测试复用浏览器会话

Selenide并行测试会话隔离解决方案

针对你遇到的并行测试中浏览器会话复用导致登录状态残留的问题,无需手动调用WebDriverRunner.closeWebDriver(),可以通过Selenide内置配置实现每次测试使用全新会话:

1. 通过配置文件全局设置

在项目的src/test/resources目录下创建或修改selenide.properties文件,添加以下配置:

# 每次测试结束后重置浏览器会话(关闭当前driver)
selenide.browserResetStrategy=afterTest
# 测试结束后不保留浏览器窗口
selenide.holdBrowserOpen=false

2. 在测试代码中动态配置

如果需要在代码中灵活控制,可以在测试类的@BeforeEach方法中设置Selenide配置:

import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.BrowserResetStrategy;
import org.junit.jupiter.api.BeforeEach;

class YourTestClass {
    @BeforeEach
    void setupTestSession() {
        // 每次测试后自动关闭浏览器会话
        Configuration.browserResetStrategy = BrowserResetStrategy.AFTER_TEST;
        Configuration.holdBrowserOpen = false;
    }

    @ParameterizedTest
    @ValueSource(strings = {"value1", "value2", ... , "value8"})
    void demo(String message) {
        open("http://localhost:8080/login", LoginPage.class)
                    .loginAsDefaultUser()
                    .isMessageDisplayed(message);
    }
}

3. 补充:强制清理登录状态(可选)

如果只需要清除登录会话而非完全重启浏览器,可在测试开始前清理Cookie和本地存储:

@BeforeEach
void clearAuthState() {
    open("/");
    clearBrowserCookies();
    clearBrowserLocalStorage();
}

这样配置后,每个测试方法执行完毕会自动关闭当前浏览器会话,下一个测试会启动全新的浏览器实例,避免登录状态残留导致的重定向问题。

内容的提问来源于stack exchange,提问作者Sundel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:52:20