javascript - 如何使用PhantomJS连续多次访问一个页面?

标签 javascript phantomjs

是否可以打开页面,执行我的操作并关闭它。超时后再次访问即可看到内容变化(页面有很多js函数)。尝试连续两次打开页面会使 PhantomJS 的行为变得不可预测。那解决办法是什么?

最佳答案

PhantomJS 中的大多数执行都是异步的,因此您必须在第一个页面加载完成后才打开页面:

page.open(url, function(){
    setTimeout(function(){
        // do something
        page.open(url, function(){
            setTimeout(function(){
                // do something
                phantom.exit();
            }, 5000); // 5 seconds
        });
    }, 5000); // 5 seconds
});

或者使用递归更好:

var i = 0;
function run(){
    if (i > 100) { // stop execution at some point
        phantom.exit();
    }
    page.open(url, function(){
        // do what you have to do
        setTimeout(run, 5000); // run again in 5 seconds
    });
}
run();

关于javascript - 如何使用PhantomJS连续多次访问一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28525123/

相关文章:

selenium-webdriver - 如何在c#上实现PhantomJS + Wedriver

javascript - Rspec & capybara : Setting focus to an element using jQuery doesn't apply `:focus` CSS

javascript - jquery 中最接近的值四舍五入?

javascript - 使用 Angular mock 加载 JSON 文件进行 Backendless 开发

javascript - 如何从函数参数谷歌脚本创建文件夹

javascript - 如何使用 phantomjs 浏览器在 capybara 中获取完整的 url 和哈希值

javascript - 可切换的动画垂直导航栏

javascript - 如何以不可变的方式更新数组

javascript - 通过 PhantomJS 运行时 Highcharts 缺少条形图

node.js - 在 phantomjs-prebuilt@2.1.13 安装脚本 'node install.js' 失败