2017-01-27 5 views
3

В CasperJS как Вы поддерживаете сеанс при использовании casper.thenOpen()Как сохранить сеанс в casperjs?

Например:

var casper = require('casper').create(); 

casper.start('http://chaseonline.com/', function() { 
    this.echo(this.getTitle()); 
    this.evaluate(function() { 
     document.getElementById("userid").value = "[email protected]"; 
     document.getElementById("password").value = "asdf"; 

    }); 
    this.click("#btnSubmit"); 
}); 

casper.thenOpen('http://chaseonline.com/section/1/module/2/abc.jsp', function() { 
    // now this page never loads because the page requires a logged in session 
    // but casperjs doesn't appear to automatically propagate the session 
    this.echo(this.getTitle()); 
}); 

casper.run(); 

ответ

1

сессия все еще открыта в вашем примере. Возможно, вы не авторизовались.
Может быть, если он работает шаг за шагом (кажется, сайт я вижу, это не один в вашем примере, нет Логин):

var casper = require('casper').create(); 
var x = require('casper').selectXPath; 

casper.start('http://youraddess.com/', function() { 
    casper.then(function() { 
    casper.waitForSelector(x("xpath_selector")); 
    }); 
    var data = {}; 
    casper.then(function() { 
    data["//input[@id='userid']"] = "[email protected]"; 
    data["//input[@id='password']"] = "asdf"; 
    casper.fillXPath(x("//form[]"), data, false); 
    }); 
    casper.then(function() { 
    casper.click(x("//button[@id='btnSubmit']")); 
    }); 
    casper.then(function() { 
    casper.waitWhileSelector(x("xpath_selector")); 
    }); 
}); 
casper.thenOpen('http://chaseonline.com/section/1/module/2/abc.jsp', function() { 
    // now this page never loads because the page requires a logged in session 
    // but casperjs doesn't appear to automatically propagate the session 
    casper.then(function() { 
    casper.echo(this.getTitle()); 
    casper.capture('test.png'); 
    }); 
}); 

casper.run(); 

Сеанс до запуска() всегда то же самое. Есть возможность открывать новые, но это сложно.

+0

Я не могу предоставить реальные URL-адреса и данные для входа. Вот еще информация: –

+0

По-видимому выглядит как сеанс входа в систему, недоступный на этом thenOpen (url). - После входа в систему я фиксирую снимок экрана, и я вижу, что логин был успешным. - Когда я изменяю thenOpen (url) на что-то вроде домашней страницы (которая не нуждается в аутентификации) или google.com, скрипт работает. т. е. печатает заголовок последнего URL-адреса –

+0

Используете ли вы phantomjs или slimerjs? обычно сеанс хранится в течение всего запуска (casper.run()). – dasmelch

Смежные вопросы