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

위의 코드에서 예제 웹 사이트를로드하면 부트 스트랩 팝업이 표시됩니다. 이제 팬텀 js에서 나는 팝업없이 웹 페이지의 스크린 샷을 찍고 싶다. 당신은/숨기기 스크린 샷을하기 전에 모달을 해제해야부트 스트랩 모달 팝업 숨기기

답변

1

.. phantomjs 통해이 팝업을 숨기는 방법에 저를 도와주세요 :

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); 

}); 

또 다른 방법은 바로 DOM에서 모달 창 요소를 제거하는 것입니다 :

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

당신의 resposne 주셔서 감사합니다. 그러나 위의 코드가 여전히 작동하지 않습니다. 나는 팝업이 표시되는 것을 볼 수 있습니다. 또한 나는 8 초로 제한 시간을 늘렸지 만 여전히 팝업이 표시됩니다. 내가 놓칠 수있는 다른 설정이 있는지 알려주시겠습니까? –

+0

예제에서 "#themodal"을 대상 사이트의 실제 모달 ID로 바꿨습니까? – Vaviloff

+0

네, 웹 페이지 유형에도 페이지가 업데이트되었지만 행운이 없습니다 –