2016-03-31 3 views
1

CasperJS кнопка нажата, но оленья кожа перенаправлять

var casper = require('casper').create({ 
 
    verbose: true, 
 
    logLevel: 'error', 
 
    pageSettings: { 
 
    userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36' 
 
    } 
 
}); 
 
var x = require("casper").selectXPath; 
 

 
casper.start("https://kit.kijiji.ca/Index.aspx"); 
 

 
casper.then(function() { 
 
    this.sendKeys('input[name="login_username"]', 'exa[email protected]'); 
 
    this.sendKeys('input[name="login_password"]', 'password'); 
 
}); 
 

 
casper.thenClick('button', function() { 
 
    this.echo("Button clicked."); 
 
}); 
 

 
casper.wait(500, function() { 
 
    casper.click(x("//input[@value='Login/Ouvrir une session']")); 
 
}); 
 

 
casper.wait(1000, function() { 
 
    this.echo(this.getTitle()); 
 
    this.capture('example.png'); 
 
    casper.exit(); 
 
}); 
 

 
casper.run();

Привет там, Я искал вокруг Интернета и не смогли найти решение моей проблемы, поэтому я решил опубликовать здесь.

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

Хотя, когда я ввожу ложные учетные данные, я вижу, что из захвата casperjs кнопка нажимается, поскольку на странице отображается «неверное имя пользователя/пароль».

Любая помощь была бы принята с благодарностью. Заранее спасибо.

+0

Какую версию PhantomJS вы используете? Пожалуйста, зарегистрируйтесь на события 'resource.error',' page.error', 'remote.message' и' casper.page.onResourceTimeout' ([Пример] (https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file -2_caspererrors-JS)). Возможно, есть ошибки. –

+0

@ ArtjomB. В настоящее время я использую последнюю версию PhantomJS (2.1.1), и я не получал никаких ошибок от этих событий. Также теперь с правильными учетными данными функция захвата возвращает ошибку «Не удалось сохранить скриншот на example.png, пожалуйста, проверьте разрешения ...» Это то, что я получил от события resource.error ResourceError: { "errorCode" : 5, «errorString»: «Операция отменена», «id»: 78, «status»: null, «statusText»: null, «url»: «https://kit.kijiji.ca/ Index.aspx " } –

+0

Я не думаю, что вы используете PhantomJS 2.1.1. CasperJS включает более старую версию PhantomJS, если вы установили ее через NPM. Попробуйте запустить его как 'casperjs --ignore-ssl-errors = true -ssl-protocol = any script.js' –

ответ

0

Ваша учетная запись находится в форме с сообщением о посту. U может попытаться отправить форму, а нажав кнопку входа. Я также столкнулся с этой проблемой и получил решение таким образом:

this.fill('form#formname', { 
     login_username: '[email protected]', 
     login_password: 'password', 
    }, false); 

    this.thenEvaluate(function() { 
     document.querySelector('form#formname').submit(); 
    }); 

Надеюсь, вы сможете решить эту проблему. Пожалуйста, введите имя формы правильно.

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