2014-11-11 2 views
0

Я не уверен, что этот вопрос связан с PhantomJS или простым Javascript.Как получить JSessionID в PhantomJS

Я использую 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, так что я могу смотреть для JSESSIONID в нем.

Из-за моих плохих навыков работы с javascript я не могу решить эту простую проблему.

ответ

0

Я не знаю, почему я взял длинный маршрут, но, пройдя через примеры на ghostdriver (link) ..its всего 2 строки кода

Так happy..now я могу спать спокойно :)

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

    System.out.println(((String)object)); 
Смежные вопросы