0
我正在測試我們的web應用程序。我們的整個應用程序是通過一個iframe,爲了訪問它,你必須登錄。Casper JS -cant在iframe中登錄網站
現在我試圖測試登錄頁面(這是在iframe中)。我可以訪問沒有和問題的表單和按鈕,但儘管當我點擊用Casper JS提交時url被更改,頁面實際上並沒有改變。
我試過各種超時,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'仍然通過。所以它不是真的登錄。 –
當你嘗試用this.click(「#modalButtonLogin」)登錄時,問題很可能出現。您是否嘗試驗證該按鈕是否實際點擊?您可能必須先獲取iframe的ID,然後在iframe內部單擊該按鈕 - 請參閱http://stackoverflow.com/questions/1452871/how-can-i-access-iframe-elements-with -javascript –