簡體   English   中英

CasperJS / PhantomJS在加載頁面時窒息

[英]CasperJS/PhantomJS chokes on loading a page

我用phantomjs運行以下腳本:

var casper = require('casper').create();
var url = 'https://itunesconnect.apple.com/itc/static/login?view=1&path=%2FWebObjects%2FiTunesConnect.woa%3F'

casper.on("page.error", function(msg, trace) {
  this.echo("Error:    " + msg, "ERROR");
  this.echo("file:     " + trace[0].file, "WARNING");
  this.echo("line:     " + trace[0].line, "WARNING");
  this.echo("function: " + trace[0]["function"], "WARNING");
  errors.push(msg);
});



casper.start(url, function(){
    casper.wait(7000, function(){
        // casper.echo(casper.getHTML());
    })
})

casper.run(function() {
  if (errors.length > 0) {
    this.echo(errors.length + ' Javascript errors found', "WARNING");
  } else {
    this.echo(errors.length + ' Javascript errors found', "INFO");
  }
  casper.exit();
});

直到幾天前,我才能訪問加載包含2個表單字段的iframe的頁面,以允許用戶登錄。

現在我收到以下錯誤:

Error:    Error: undefined is not a constructor (evaluating '$stateParams.path.startsWith('/')')

    at setupDSiFrame (https://itunesconnect.apple.com/itc/static-resources/controllers/login_cntrl.js?cache=111920151100:99:46)

    at https://itunesconnect.apple.com/itc/static-resources/controllers/login_cntrl.js?cache=111920151100:19:37

    at $digest (https://itunesconnect.apple.com/itc/js/compiled/lib/vendor.js?cache=111920151100:13:11750)

    at $apply (https://itunesconnect.apple.com/itc/js/compiled/lib/vendor.js?cache=111920151100:13:13237)

    at f (https://itunesconnect.apple.com/itc/js/compiled/lib/vendor.js?cache=111920151100:12:56414)

    at r (https://itunesconnect.apple.com/itc/js/compiled/lib/vendor.js?cache=111920151100:12:65848)

    at onreadystatechange (https://itunesconnect.apple.com/itc/js/compiled/lib/vendor.js?cache=111920151100:12:66409)

file:     https://itunesconnect.apple.com/itc/js/compiled/lib/vendor.js?cache=111920151100

line:     12

使用slimerjs作為引擎加載頁面很好,但是當使用slimerjs時,登錄表單不會被填充,因為窗口不在焦點上。 我相信這是一個問題,其中casper使用舊版本的WebKit並在加載頁面時窒息。 我該如何解決這個問題?

如果有人在PhantomJS中找到了使用startsWith搜索問題的問題(如我所做的那樣),那么解決問題的時間太晚了,但可能對將來參考有用:在ECMAScript 6規范中添加了startsWith方法,PhantomJS不支持。

一個很好的polyfillmathiasbynens / String.prototype.startsWith

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM