2016-07-13 12 views
0

Ich muss Facebook-Video-Seite schrotten, aber die Schaltfläche "mehr laden" ist in Ajax. Also versuche ich mit PhantomJS auf den Button zu klicken.Phantom JS laden mehr Element

Aber ich muss oft auf die Schaltfläche klicken.

Also das ist mein Code:

var page = require('webpage').create(); 

page.open("https://www.facebook.com/MisterVOnline/videos", function(status) { 
    if (status === "success") { 
     page.evaluate(function() { 
      while(document.querySelector(".uiMorePagerPrimary")){ 
       document.querySelector(".uiMorePagerPrimary").click(); 
       window.setTimeout(function() { 
       }, 5000); 
      } 
     }); 
     window.setTimeout(function() { 
      //console.log(page.content); 
      page.render('facebook.jpeg'); 
      phantom.exit(); 
     }, 5000); 
    } 
}); 

Der Code funktioniert nicht, wenn ohne die while-Schleife, er eine gute Belastung ...

Ich habe Hoffnung, dass mir jemand helfen könnte!

Antwort

0

Problem gelöst: Verwendung setInterval statt while-Schleife:

var myTime = setInterval(function(){ 
    if(document.querySelector(".uiMorePagerPrimary")!=null) 
    { 
     nbTry=0; 
     document.querySelector(".uiMorePagerPrimary").click(); 
    } 
    else 
    { 
     nbTry++; 
    } 
    if(nbTry>5) 
    { 
     clearInterval(myTime); 
     window.callPhantom({ exit: true }); 
    } 
}, 500);