Java 如何在selenium中保持应用程序会话的活动状态
我浏览过互联网,但没有得到任何合适的解决方案。 我的问题是,由于应用程序很大,我的selenium脚本需要很长时间才能执行,原因是应用程序的会话已过期,并且它已从应用程序注销。我在testng的@BeforeMethod中尝试了以下javascript代码,但仍然没有成功Java 如何在selenium中保持应用程序会话的活动状态,java,javascript,selenium,testng,Java,Javascript,Selenium,Testng,我浏览过互联网,但没有得到任何合适的解决方案。 我的问题是,由于应用程序很大,我的selenium脚本需要很长时间才能执行,原因是应用程序的会话已过期,并且它已从应用程序注销。我在testng的@BeforeMethod中尝试了以下javascript代码,但仍然没有成功 public void keepSessionAlive() { ((JavascriptExecutor)Driver.driver).executeScript("checkActivity(1200000, 60
public void keepSessionAlive()
{
((JavascriptExecutor)Driver.driver).executeScript("checkActivity(1200000, 60000, 0);"+
"function checkActivity(timeout, interval, elapsed) "
+ "{"+
"if ($.active) "
+ "{"+
"elapsed = 0;"+
"$.active = false;"+
"$.get('app/heartbeat');"
+ "}"+
"if (elapsed < timeout) "
+ "{"+
"elapsed += interval;"+
"setTimeout(function() "
+ "{"+
"checkActivity(timeout, interval, elapsed);"+
"}, "
+ "interval);"+
"} "
+ "else "
+ "{"+
"window.location = 'timeout';"+
"}"+
"};");
}
public void keepSessionAlive()
{
((JavascriptExecutor)Driver.Driver).executeScript(“检查活动(1200000060000,0);”+
函数检查活动(超时、间隔、已用)
+ "{"+
“如果($.active)”
+ "{"+
“已用时间=0;”+
“$.active=false;”+
“$.get('app/heartbeat');”
+ "}"+
“如果(经过<超时)”
+ "{"+
“已用时间+=间隔;”+
“设置超时(函数()”
+ "{"+
检查活动(超时、间隔、已用时间)+
"}, "
+“间隔时间”+
"} "
+“其他”
+ "{"+
“window.location=‘超时’;”+
"}"+
"};");
}
您是否也向应用程序添加了响应app/heartbeat
请求的内容,并刷新每个请求的会话超时?@RequestMapping(value=“/heartbeat”,method=RequestMethod.GET)受保护的void doGet(HttpServletRequest,HttpServletResponse){request.getSession();}