Java 如何在selenium中保持应用程序会话的活动状态

Java 如何在selenium中保持应用程序会话的活动状态,java,javascript,selenium,testng,Java,Javascript,Selenium,Testng,我浏览过互联网,但没有得到任何合适的解决方案。 我的问题是,由于应用程序很大,我的selenium脚本需要很长时间才能执行,原因是应用程序的会话已过期,并且它已从应用程序注销。我在testng的@BeforeMethod中尝试了以下javascript代码,但仍然没有成功 public void keepSessionAlive() { ((JavascriptExecutor)Driver.driver).executeScript("checkActivity(1200000, 60

我浏览过互联网,但没有得到任何合适的解决方案。 我的问题是,由于应用程序很大,我的selenium脚本需要很长时间才能执行,原因是应用程序的会话已过期,并且它已从应用程序注销。我在testng的@BeforeMethod中尝试了以下javascript代码,但仍然没有成功

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();}