如何打开页面,调用函数,然后使用PhantomJS打开另一个页面

时间:2017-01-28 12:07:43

标签: phantomjs

我知道存在这个问题的不同变体,因为我花了几个小时寻找例子。基本上我的脚本有3个我想要打开的链接,等待我正在寻找的内容存在于页面中然后在本地保存页面的HTML。然后为第二和第三个链接做同样的事情。我的代码在

之下
    var system = require('system')
    var page = require('webpage').create();
    var fs = require('fs');
    var wd = 'mylocaldir'
    var url1 = '1st url link'
    var url2 = '2nd url link'
    var url3 = '3rd url link'
    var file1 = 'url1.html'
    var file2 = 'url2.html'
    var file3 = 'url3.html'
    page.open(url1, function() {
         //do {phantom.page.sendEvent('mousemove'); } while (page.evaluate(function() {return !document.querySelectorAll(".centercontent").length > 0} ))
        fs.write(file1, page.content, 'w');
        page.open(url2, function() {
            //do {phantom.page.sendEvent('mousemove'); } while (page.evaluate(function() {return !document.querySelectorAll(".centercontent").length > 0} ))
            fs.write(file2, page.content, 'w');
            page.open(url3, function(){
                //do {phantom.page.sendEvent('mousemove'); } while (page.evaluate(function() {return !document.querySelectorAll(".centercontent").length > 0} ))
               fs.write(file3, page.content, 'w');
               var cookies = JSON.stringify(phantom.cookies);
               fs.write("cookies.txt", cookies, 644)
            });

       });

    });
    phantom.exit()

我希望do-while循环会发送一个鼠标事件,直到我想要的内容返回true但它不能像我希望的那样工作。实际上,它似乎不会打开页面,也不会保存页面的HTML。我特意寻找一种方法来构造这个脚本,以便每个url链接,phantomjs将打开链接,等待page.evaluate(function() {return !document.querySelectorAll(".centercontent").length > 0} ))返回true,在本地保存页面的HTML然后为接下来的两个做同样的事情网址链接。

如何打开页面,等待此特定条件page.evaluate(function() {return !document.querySelectorAll(".centercontent").length > 0} ))返回true,在本地保存页面,然后对我希望在同一会话中打开的另一个页面重复该过程?

0 个答案:

没有答案