我需要跟踪会话ID以了解应用程序的某些特殊要求,并且必须在应用程序UI的Access Log页面中对其进行匹配。我尝试使用以下代码,它在firefox驱动程序中正常工作。
String ASPNET_SessionId = driver.manage().getCookieNamed("JSESSIONID").toString();
strSessionID = ASPNET_SessionId.split("=")[1].split(";")[0];
我们在框架中有一个功能,我们可以在Firefox或IE的任何浏览器中执行。但是当尝试在IE中执行我的测试时,它在获取会话ID时获取空指针异常。基本上会话将变为空。
我尝试按如下方式调用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 :(得分:0)
我也测试了你喜欢的代码;
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位版本。所以我猜你的driver.manage().getCookieNamed("JSESSIONID").toString()
没问题。检查你的文件路径并检查你的 IEDriverServer.exe 版本。
答案 1 :(得分:-1)
SessionId sessionId = null;
sessionId = ((InternetExplorerDriver) wDriver).getSessionId();