如何在PhantomJS中获取JSessionID

how to get JSessionID in PhantomJS

本文关键字:获取 JSessionID PhantomJS      更新时间:2023-09-26

我不确定这个问题是与PhantomJS还是简单的Javascript有关。

我正在使用Ghostdriver打开一个网页,并试图捕获响应标头。GhostDriver执行javascript并添加onResourceReceived事件。

像这样:

String responsescript = 
                "var page = this,"+
                "jsonResponse = '"'";"+
                "page.onResourceReceived = function (res) {"+
                "console.log(JSON.stringify(res));" /* This line works fine but i want to pass this data somehow to java program. To do that, i came up with the below alternative but it is failing*/
                "jsonResponse = jsonResponse + JSON.stringify(res, undefined, 4);"+
                "};"+
                "function getJsonResponse(){"+
                "return jsonResponse;"+
                "}";
ghostDriver.executePhantomJS(responsescript);
ghostDriver.get("cnn.com");
ghostDriver.executePhantomJS("getJsonResponse();");

它总是失败,并显示以下消息:

{message=Can't find variable: getJsonResponse, line=1, stack=ReferenceError: Can't find variable: getJsonResponse

我只想在Java中的某个String变量中获得响应标头,这样我就可以在其中查找JSESSIONID。.

由于我糟糕的javascript技能,我无法解决这个简单的问题。。

我不知道为什么我走了很长的路,但在浏览了ghostdriver(链接)上的示例之后。。它只有两行代码

太高兴了。。现在我可以平静地睡觉了:)

    String responsescript = 
                    "return JSON.stringify(this.cookies);";
    Object object = phantom.executePhantomJS(responsescript);
    System.out.println(((String)object));