使用PhantomJS导航站点(包括表单)

使用PhantomJS导航站点(包括表单),phantomjs,Phantomjs,我正在尝试自动化一个应用程序,该应用程序使用表单安全性来上载文件,然后从返回的HTML中提取数据 我开始使用的解决方案来自。只要最后一步是呈现页面,我就可以定义步骤并完成整个工作流 以下是我脚本的两个主要步骤: function() { page.open("https://remotesite.com/do/something", function(status) { if ('success' === status) { page.upload

我正在尝试自动化一个应用程序,该应用程序使用表单安全性来上载文件,然后从返回的HTML中提取数据

我开始使用的解决方案来自。只要最后一步是呈现页面,我就可以定义步骤并完成整个工作流

以下是我脚本的两个主要步骤:

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来确认我的DOM选择是否正确

我见过其他问题,但它们都是围绕使用setTimeout展开的。不幸的是,原始方法的step策略已经超时

更新
我尝试了一种稍有不同的方法,使用,得到了相似的结果。我相信该文档使用的是较旧的PhantomJS API,因此我使用了“onLoadFinished”事件来驱动各个步骤。

我建议您使用或使用PJS的网页。injectScript()您可以加载jquery,然后加载自己的脚本来进行表单输入/导航。

phantomjs也允许您注入jquery,但是是的casperjs是easierJasonS。您可以分享任何这样的文章吗?它将帮助所有人这是我的SaaS特有的,但有关详细信息,请查看本页的“页面自动化”部分: