Selenium; 如何运行多个实例并保持不同的会话

3

我知道我们可以使用TestNG和Selenium Grid在多个浏览器中运行测试。但是,我面临的问题是第二个浏览器正在使用第一个浏览器的登录会话。

我的意思是,我需要登录到一个Web应用程序并执行一些功能流程自动化。代码已准备好并且独立运行良好。但在两个Firefox或Chrome实例中执行时出现问题。Firefox1首先登录,Firefox2在登录步骤之前也获取了会话。如果Firefox2注销,则Firefox1在到达注销步骤之前也注销了。


你的代码如何创建一个新的驱动程序会话? - Niels van Reijmersdal
2个回答

2

默认情况下,新的Selenium WebDriver实例使用空配置文件,除非您另有指定。

听起来您正在为两次测试运行使用相同的用户。当用户注销或登录时,它会得到与所有其他位置相同的会话状态。因此,它再次处于同一页或已注销状态。我建议您向开发人员询问应用程序的会话管理方式。

测试隔离:

您需要为每个并行运行隔离测试数据和/或测试环境。您可以在开始测试之前为测试创建一个新用户。

请参见此答案以获取更多隔离测试的想法:https://sqa.stackexchange.com/a/25623/3201

其他阅读材料:


如果我使用相同的配置文件,是否仍然可以在每个实例中更改用户代理字符串? - oldboy
@Anthony 听起来像是一个新问题。 - Niels van Reijmersdal
哦,我一定是误读了他的问题,以为是“...并维护会话”。我正在从谷歌搜索一堆不同的问题。 - oldboy

1

很可能当您登录您的Web应用程序时,会将会话存储在永久Cookie中。您可以尝试在加载网站的URL后删除这些Cookie。

webDriver.Manage().Cookies.DeleteAllCookies();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接