[英]Form fill and capture fail sometimes using CasperJS
我想填寫表格並捕獲生成的頁面。 所以我寫了一個CasperJS(這是我第一次使用CasperJS)將其歸檔到目標。 我閱讀了CasperJS API文檔,但仍不確定如何解決該問題。
下面是我的代碼:
var casper = require('casper').create();
var filename = casper.cli.get(0);
var myear = casper.cli.get(1);
var mmon = casper.cli.get(2);
var stk_no = casper.cli.get(3);
casper.start('http://www.twse.com.tw/en/trading/exchange/STOCK_DAY/STOCK_DAYMAIN.php', function() {
this.fill("form[name='date_form']", {
'myear' : myear,
'mmon' : mmon,
'STK_NO': stk_no
},true);
});
casper.then(function() {
this.capture(filename);
this.echo("Saved screenshot of " + (this.getCurrentUrl()) + " to " + filename);
});
casper.run();
我的命令就像
casperjs test.js picture.png 2013 12 8271
有時不會生成任何圖片文件,結果是失敗:
Saved screenshot of http://www.twse.com.tw/en/trading/exchange/STOCK_DAY/STOCK_DAY.php to picture.png
有時會生成一個圖片文件,並且證明它是成功的:
Saved screenshot of http://www.twse.com.tw/en/trading/exchange/STOCK_DAY/genpage/Report201312/201312_F3_1_8_8271.php?STK_NO=8271&myear=2013&mmon=12 to picture.png
為什么有時它會起作用並進行捕獲,但有時會失敗? 為什么this.getCurrentUrl()的返回值可能不同?
當前網址為http://www.twse.com.tw/en/trading/exchange/STOCK_DAY/STOCK_DAY.php
,表示您被阻止在開始頁面中並等待重定向,請更改您的
casper.then(function() {
this.capture(filename);
this.echo("Saved screenshot of " + (this.getCurrentUrl()) + " to " + filename);
});
至:
casper.waitForUrl(/Report/, function() {
this.capture(filename);
this.echo("Saved screenshot of " + (this.getCurrentUrl()) + " to " + filename);
});
/Report/
在當前URL中表示“報告”,因此您正在查詢頁面數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.