Я работаю над тестированием нашего веб-приложения. Все наше приложение через iframe, и для доступа к нему вы должны войти в систему.Casper JS -cant Войти на сайт в пределах iframe
Сейчас я пытаюсь проверить страницу входа (которая находится внутри iframe). Я могу получить доступ к форме и кнопкам без проблем, но, хотя URL-адрес изменен, когда я нажимаю submit с помощью Casper JS, страница никогда не изменяется.
Я пробовал различные таймауты, ect ожидания waitFor. У кого-нибудь есть мысли о том, что может блокировать страницу?
сайт: witkit.com
тест:
var routine = {
login: function(email, pass, test) {
casper.then(function() {
this.withFrame(0, function() {
this.waitUntilVisible('form#login-form', function() {
this.fill('form#login-form', {
email: email,
password: pass
}, false);
});
});
});
casper.then(function(){
casper.withFrame(0, function() {
this.click("#modalButtonLogin");
});
});
}
};
casper.test.begin('Logs in', function(test) {
casper.start("https://web.witkit.com/#");
casper.then(function(test) {
routine.login('*******@witkit.com', '*******', test);
})
.wait(3000, function(){
test.assertUrlMatch(this.getCurrentUrl(), 'https://web.witkit.com/#kit/176637403872624641');
}) //this passes
casper.wait(10000, function(){
this.withFrame(0, function() {
this.echo(this.getHTML()); // this shows login page html
});
})
.waitForSelector('.wkKitTitle', function() {
// this will never show
})
.run(function() {
test.done();
});
});
Я помню, как работала над чем-то совсем недавно, когда имелось ограничение на выполнение любого типа входа в систему iFrame. Я подозреваю, что если вы перейдете на страницу напрямую, вы можете войти в систему просто отлично, но когда это делается в iFrame (косвенно), это ничего не делает? Вы видели эту тему: http://stackoverflow.com/questions/11439927/how-can-i-http-authentication-login-with-javascript-for-an-iframe – mwilson
Я могу заполнить форму любой ценностью, и это 'test.assertUrlMatch' все еще проходит. Так что это действительно не вход в систему. –
Похоже, проблема связана с попыткой входа в систему с этим .click («# modalButtonLogin») ;. Пробовали ли вы проверить, действительно ли кнопка нажата? Возможно, вам придется сначала получить идентификатор iframe, а затем нажать кнопку, когда вы находитесь внутри iframe, - см. Http://stackoverflow.com/questions/1452871/how-can-i-access-iframe-elements-with -javascript –