1
我試圖自動化一個應用程序,使用表單安全性來上傳文件,然後從返回的HTML中刮取數據。PhantomJS瀏覽網站(包括表格)
我開始使用this question的解決方案。只要最後一步是渲染頁面,我就可以定義我的步驟並完成整個工作流程。
這裏有兩個步驟是我的腳本的肉:
function() {
page.open("https://remotesite.com/do/something", function(status) {
if ('success' === status) {
page.uploadFile('input[name=file]', 'x.csv');
page.evaluate(function() {
// assignButton is used to associate modules with an account
document.getElementById("assignButton").click();
});
}
});
},
function() {
page.render('upload-results.png');
page.evaluate(function() {
var results = document.getElementById("moduleProcessingReport");
console.log("results: " + results);
});
},
當我運行該腳本,我看到輸出渲染是正確的。但是,評估部分不起作用。我可以通過在遠程站點上的Javascript控制檯中運行它來確認我的DOM選擇是正確的。
我見過其他問題,但他們圍繞使用setTimeout。不幸的是,原始方法的步驟策略已經超時。
UPDATE 我嘗試了稍微不同的方法,使用this post並得到了類似的結果。我相信該文檔使用了較老的PhantomJS API,因此我使用「onLoadFinished」事件在各個步驟之間進行驅動。
phantomjs也讓你注入的jQuery但耶casperjs容易 – Magus
JASONS可以請你分享任何此類的文章,它會幫助大家 – aniruddha
這是針對我的SaaS,但看細節此頁面的「頁面自動化」部分:HTTPS ://phantomjscloud.com/docs/ – JasonS