2014-01-09 82 views
1

我想登錄到一個網站,但我得到一個頁面錯誤中途。當我在我的瀏覽器上工作正常。CasperJS:頁面錯誤

Page Error: TypeError: 'undefined' is not a function (evaluating '$(document.bod 
y).appendChild(iframe)') 

這很奇怪,因爲jQuery被注入頁面,我不明白這個問題。

這裏是後發生錯誤

casper.then(function LogIn() { // LOG IN 
     this.page.setCookies(''); 
     if (this.page.injectJs('X:/XXX/JS/jquery-latest.min.js')){this.echo('Injected jQuery')} 
     //this.echo(this.getCurrentUrl(), "info"); 
     this.fill('form[name="logon"]', 
      { 
       'username': username, 
       'password': password, 
       'redir': "http://***/", 
       'msg': '', 
       'emailauth': '', 
       'loginfriendlyname': '', 
       'captchagid': '-1' 
      } 
     ,false); 
     // this.evaluate(function(){DoLogin();}) 
     // this.echo('Loginform:' + this.fetchText('#loginForm')) 
     if(this.exists('form input[type="submit"]')){ 
      this.echo('Exists'); 

      this.evaluate(function(){ 
       document.getElementById('Login').click(); 
      }) 
      // this.evaluate(function(){document.querySelector('form[name="logon"]').submit()}) 
      //this.click('form input[type="submit"]'); 

     } 
     else { 
      this.echo('Doesnt exist') 
     } 
     this.wait(2000) 
}); 

爲了精確的步驟的代碼本

this.evaluate(function(){ 
        document.getElementById('Login').click(); 
       }) 

回答

2

嘗試後立即發生錯誤,以取代:

this.evaluate(function(){ 
    document.getElementById('Login').click(); 
}); 

創建人:

this.click('#Login');