簡體   English   中英

登錄銀行帳戶時CasperJS超時

[英]CasperJS timeout while logging into a bank account

我正在嘗試使用CasperJS登錄到Capital One 360​​銀行帳戶。 它會加載用戶名屏幕,正確輸入用戶名,加載密碼屏幕,但隨后會超時(大概沒有錯誤),並在輸入密碼后停止。

有人對我在做什么錯有任何想法嗎?

var casper = require('casper').create({
    verbose: true,
    logLevel: "debug"
});

var capone360 = "https://secure.capitalone360.com/myaccount/banking/login.vm";

casper.start(capone360);

casper.then(function(){
   casper.waitForSelector("#ACNID", function() {
        this.echo(this.getTitle());
        this.sendKeys('#ACNID', username);
    }, true); 
});

casper.then(function(){
    this.click("#btn_continue"); 
});

casper.then(function(){
    this.waitForSelector("#currentPassword_TLNPI", function() {
        this.echo(this.getTitle());
        this.sendKeys('#currentPassword_TLNPI', password);
    }, true);
});

casper.then(function(){
    this.clickLabel("Continue", "a");
});

casper.then(function(){
    this.waitForSelector("#deposittable", function() {
        this.echo(this.getTitle());
    }, true);
});

casper.run();

PhantomJS版本2.0.0

更新已切換到PhantomJS 1.9.8。 根據@Artjom B.建議。 現在有錯誤在說:“無法在不存在的選擇器上調度mousedown事件:xpath選擇器:// a [text()=“ Continue”]“。

嘗試點擊:

<a class="ada-new-win" href="javascript:void(0);" role="button" onclick="submitForm('continue'); return false;">Continue</a>

考慮到它正在等待密碼輸入框加載,我認為應該在那兒,但是我忘了其他東西嗎?

PhantomJS 2.0.0有一個錯誤,即使專門偵聽各種錯誤事件,錯誤也不會打印到控制台。 這就是為什么您看不到明顯的錯誤的原因:

TypeError:true不是函數

發生該錯誤的原因是您將true作為waitForSelector()的第三個參數提供,但函數簽名為

waitForSelector(String selector[, Function then, Function onTimeout, Number timeout])

腳本中的某些步驟似乎中斷了,因為找不到選擇器。 onTimeout傳遞的函數將被執行,但true不是函數。 只需刪除第三個參數即可查看錯誤所在。 如果仍然沒有顯示任何內容,請嘗試使用PhantomJS 1.9.8。


您或者需要使用waitForSelector(x(selector))等待“繼續”按鈕出現,並且/或者需要使用更強大的選擇器:

var x = require("casper").selectXPath;
...
var continueButtonSelector = x("//a[contains(text(), 'Continue')]");
casper.waitForSelector(continueButtonSelector);
casper.thenClick(continueButtonSelector);

有時這是必要的,因為元素可能是用這樣的空格定義的

<a>   Continue   </a>
   ^^^        ^^^

這意味着text()="Continue"無法匹配。 瀏覽器渲染器無視此空白,但仍在DOM中。

暫無
暫無

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

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