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