Отладка о: пусто в CasperJs

У меня есть следующий простой скрипт casperjs (я не могу назвать фактический URL - извините) на компьютере с Windows 7:

var casper = require('casper').create({verbose:true,logLevel: "debug"});

casper.start('https://[XXX].de', function() {
    console.log(this.getCurrentUrl());
});

casper.run();

В выводе указано, что это не удалось - и текущий URL-адрес: «о: пусто»

[info] [phantom] Starting...
[info] [phantom] Running suite: 2 steps
[debug] [phantom] opening url: https://[XXX].de, HTTP GET
[debug] [phantom] Navigation requested: url=https://[XXX].de, type=Other, lock=true, isMainFrame=true
[warning] [phantom] Loading resource failed with status=fail: https://[XXX].de
[debug] [phantom] Successfully injected Casper client-side utilities
about:blank
[info] [phantom] Step 2/2: done in 39205ms.
[info] [phantom] Done 2 steps in 39309ms

При отправке запроса GET с помощью плагина Firefox RESTCLient я получаю:

Status Code: 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: close
Content-Type: text/html
Date: Tue, 11 Dec 2012 11:09:37 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Server: unknown
Transfer-Encoding: chunked

Мой вопрос:

Как я могу отладить это? Это известная проблема ?


person madflow    schedule 11.12.2012    source источник
comment
Я считаю, что это может быть проблема с сертификатом ssl. Но: casperjs test.js --ignore-ssl-errors=yes возвращает Error: Unknown option: casper-path - Mmmh.   -  person madflow    schedule 11.12.2012
comment
Я пробовал с последней версией casperjs из github - теперь там casperjs test.js --ignore-ssl-errors=yes не через ошибку - но фактическая проблема все еще существует (о: пусто и т. д.).   -  person madflow    schedule 11.12.2012
comment
ваши поиски все еще беспокоят вас?   -  person Adi Prasetyo    schedule 14.07.2016
comment
@AdiPrasetyo нет, я пошел дальше;)   -  person madflow    schedule 14.07.2016
comment
я не уверен, но похоже, что когда casper.close(); исполняемая страница переместилась на about:blank   -  person Adi Prasetyo    schedule 14.07.2016


Ответы (2)


Похоже, что аргументы командной строки, переданные в casperjs, не передаются в PhantomJS. Я также столкнулся с этой проблемой, и чтобы исправить это, я запустил свой скрипт следующим образом:

PhantomJS.exe --ignore-ssl-errors=true myscript.js

Когда я попытался передать параметры наоборот

PhantomJS.exe myscript.js --ignore-ssl-errors=true

он не работает и выдает ту же ошибку, с которой вы столкнулись.

person Leo Thumma    schedule 28.06.2013
comment
Кажется, это известный b0rk: github.com/n1k0/casperjs/issues/49 на окнах. - person madflow; 25.10.2013
comment
Спасибо, если я сначала укажу параметры опции, это сработает для меня. - person pilavdzice; 29.05.2014

Чтобы передать параметры phantomjs в casperjs, вы можете напрямую обновить двоичный файл casper (casperjs.py в Linux или casperjs.bat в Windows).

В Linux откройте casperjs.py, обновите массив CASPER_COMMAND, формирующий команду phantomjs, и выполните.

Чтобы добавить «--ignore-ssl-errors=yes», расширьте CASPER_COMMAND следующим образом:

CASPER_COMMAND.extend(['--ignore-ssl-errors=yes']);

Для того же, для Windows или Дополнительную информацию можно найти здесь

person Parthyz    schedule 19.09.2013
comment
Добро пожаловать в SO. Пожалуйста, учитывайте формат кода в своем ответе. Это занимает 1 минуту, и это полезно для простого определения кода. - person dic19; 19.09.2013