我目前有一个使用Selenium的Web应用程序。目前有一个用于身份验证的页面(检查登录/密码)。如果成功,有一个jsp将包含一个用于连接逻辑的UI,假设登录成功。
现在我想直接进入现有会话中的业务逻辑页面。我的问题是有些类似cookie或会话来跟踪,所以在后端它可以传递到页面,以便带有任务的页面出现。目前它只是将它重定向为用户名作为密码。
答案 0 :(得分:2)
您可以重新使用WebDriver,而不是存储会话数据。
如果我理解正确,听起来您需要做的就是使用您以前用于登录的相同WebDriver获取/导航到您想要的页面。
例如,如果在当前设置中有一个成功登录的测试,而不是退出WebDriver,则可以在某个字段中进行设置。
在课堂上:
WebDriver driver = null;
WebDriver loggedInDriver = null;
@Before
public void setupTest() {
driver = new FirefoxDriver();
}
在成功登录的测试中:
logIn();
loggedInDriver = driver;
然后在您的测试中需要“在现有会话中” - 而不是使用新的WebDriver,使用您预留的那个。
//driver.get(...);
loggedInDriver.get(...);
唯一的问题是您的测试需要在相关测试之前运行登录。您可以在测试中包含一个检查,检查loggedInDriver
字段是否已设置(仍然不为空),如果没有,请在继续之前调用您的方法登录。