2017-10-27 13 views
1
var webpage = require('webpage').create(); 
var filename = 'demo.png'; 
webpage.open('https://www.example.com/', function() {  
webpage.render(filename); 
phantom.exit();}); 

Im obigen Code wird beim Laden der Beispielwebsite ein Bootstrap-Popup angezeigt. jetzt in phantom js Ich möchte einen Screenshot der Webseite ohne das Popup machen. Bitte helfen Sie mir, wie dieses Popup durch PhantomJS zu verbergen ..Bootstrap-Modal-Popup ausblenden

Antwort

1

Sie müssen modal verstecken/ausschalten, bevor Sie einen Screenshot machen:

var page = require('webpage').create(); 
var filename = 'demo.png'; 
page.open('https://www.example.com/', function() {  

    // Delay script by a second to give 
    // javascript some time to load and execute modal 
    setTimeout(function(){ 

     page.evaluate(function(){ 
      // You'll need to find the modal id to hide it programmatically 
      $('#themodal').modal('hide'); 
     }); 

     page.render(filename); 

     phantom.exit(); 
    }, 
    1000); 

}); 

Eine andere Möglichkeit ist es, nur die modalen Fensterelemente von DOM zu entfernen:

 page.evaluate(function(){ 
      // These classes are for Bootstrap 4 
      $('.modal, modal-backdrop').remove(); 
     }); 
+0

Danke für Ihr resposne, aber der obige Code funktioniert nicht immer ich kann sehen, dass das Popup angezeigt wurde. Auch ich habe das Timeout auf 8 Sekunden erhöht, aber das Popup wird immer noch angezeigt. Bitte lassen Sie mich dort ist eine andere Einstellung, die ich vermisse? –

+0

Haben Sie "#themodal" aus dem Beispiel durch die tatsächliche ID des Modals auf Ihrer Zielseite ersetzt? – Vaviloff

+0

Ja, ich tat, auch Seite zu Webseite Typ wurde aktualisiert, aber kein Glück –

Verwandte Themen