如何在IE驱动程序中获取会话

问题描述:

我需要跟踪应用程序某些特殊要求的会话ID,并且必须在应用程序UI中的访问日志页面中匹配相同的会话ID。我尝试使用下面的代码,它在firefox驱动程序中正常工作。如何在IE驱动程序中获取会话

String ASPNET_SessionId = driver.manage().getCookieNamed("JSESSIONID").toString(); 

strSessionID = ASPNET_SessionId.split("=")[1].split(";")[0]; 

我们在out框架中有一项功能,我们可以在任何浏览器中执行Firefox或IE。但是,当试图在IE中执行我的测试时,在获取会话标识时获取空指针异常。基本上会话是空的。

我试图调用IE如下:

strIEDriverPath = currentDir+(FileHandlerClass.readPropertiesXml(strPropertiesFilePath, "IEDriverPath")); 

System.setProperty("webdriver.ie.driver", strIEDriverPath); 

DesiredCapabilities capab = DesiredCapabilities.internetExplorer(); 

capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 

driver = new InternetExplorerDriver(capab); 

,但仍然没有帮助....

任何一个可以建议我如何从IE司机会话ID?任何帮助或建议应该高度赞赏..

+0

如果不是明确地向您的IE配置中引入片状(您使用'INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS'功能完成的),而是[正确配置保护模式](http://jimevansmusic.blogspot.com/2012 /08/youre-doing-it-wrong-protected-mode-and.html)与WebDriver一起使用? – JimEvans 2014-10-28 10:25:21

+0

正确配置了IE保护模式并删除了该功能。但仍然收到空指针异常。无法分析其发生的原因。任何建议请... – souvik 2014-10-28 11:13:28

我也测试过你的代码喜欢这个;

File file = new File("C:\\IEDriverServer\\IEDriverServer.exe"); 
System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); 
driver = new InternetExplorerDriver(); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
//Do something test. 
System.out.println(driver.manage().getCookieNamed("JSESSIONID").toString()); 

我的输出

JSESSIONID=JPlxPwhMkyYdpmQvJt73mSjd5p9fnn1VHfq1yvbdvZ9gnG1380rf!-1092181086; path=/ 

我的操作系统是Windows7的64位和IEDriverServer.exe也是64位version.So我猜你driver.manage().getCookieNamed("JSESSIONID").toString()没有problem.So检查文件路径和检查你的IEDriverServer.exe版本。

+0

我也有与Windows 7和64位相同的配置。仔细检查文件路径和IEDriver版本,Path是正确的,IEDriver是2.44最新版本。仍然在执行“driver.manage()。getCookieNamed(”JSESSIONID“)。toString()” – souvik 2014-10-28 10:06:11