मैं व्यक्तिगत HTML तत्वों को Phantom.JS का उपयोग करके पीएनजी में प्रस्तुत करना चाहता हूं। यदि संभव है तो किस प्रकार, क्या कोई जानता है? साथ ही, मैं एक पृष्ठ प्रस्तुत करने के लिए Phantom.js का उपयोग कैसे करूं जो उपयोगकर्ता पहले से देख रहा है?फ़ैंटॉमजेएस के साथ किसी पृष्ठ का हिस्सा कैसे प्रस्तुत करें?
उत्तर
केवल एक पृष्ठ का हिस्सा प्रस्तुत करने के लिए आपको पृष्ठ के लिए clipRect विशेषता सेट करने और फिर इसे प्रस्तुत करने की आवश्यकता है।
var clipRect = document.querySelector(selector).getBoundingClientRect();
page.clipRect = {
top: clipRect.top,
left: clipRect.left,
width: clipRect.width,
height: clipRect.height
};
page.render('capture.png');
मुझे आपके प्रश्न के दूसरे भाग को समझ में नहीं आता है। Phantom.js हेडलेस अर्थ है कि कोई वास्तविक प्रदर्शन नहीं है जिसे उपयोगकर्ता देख रहा है।
मैं एक ही जरूरत थी, मैं इस कोशिश की और यह मेरे लिए ठीक काम किया:
मत भूलना यूआरएल
var page = require('webpage').create();
page.open('YourPageURL', function (status) {
if (status !== 'success') {
console.log('Network Problem');
} else {
var p = page.evaluate(function() {
return document.getElementById('yourDivID').innerHTML
});
console.log(p);
}
phantom.exit();
});
वोट दिया गया क्योंकि यह वास्तव में प्रश्न में बताए गए अनुसार "व्यक्तिगत HTML तत्वों को पीएनजी में" स्क्रीनशॉट सहेजता नहीं है। यह केवल कुछ तत्वों के आंतरिक HTML को कंसोल करने के लिए प्रिंट करता है। –
आप CasperJS उपयोग कर सकते हैं में http://www
, एक अन्य परियोजना के आधार पर PhantomJS।
casper.start('http://www.weather.com/', function() {
this.captureSelector('weather.png', '#wx-main');
});
casper.run();
कार्य उदाहरण।
var page = require('webpage').create();
page.open('http://google.com', function() {
// being the actual size of the headless browser
page.viewportSize = { width: 1440, height: 900 };
var clipRect = page.evaluate(function(){
return document.querySelector('#hplogo').getBoundingClientRect();
});
page.clipRect = {
top: clipRect.top,
left: clipRect.left,
width: clipRect.width,
height: clipRect.height
};
page.render('google.png');
phantom.exit();
});
नीचे दिया गया समाधान मेरे लिए काम करता है।
var clipRect = document.querySelector(selector).getBoundingClientRect();
page.clipRect = {
top: clipRect.top,
left: clipRect.left,
width: clipRect.width,
height: clipRect.height
};
page.render('capture.png');
लेकिन मुझे लगता है कि यह केवल तभी काम करता है जब हम एक छवि को पीडीएफ नहीं दे रहे हैं। पीडीएफ के लिए इस wokaround करने के लिए, इस लिंक मदद मिल सकती है इस
page.evaluate(function (element){
$(element).appendTo('body');
$('body > :not(' + element + ')').hide();
}, element);
});
window.setTimeout(function(){
page.render("page.pdf");
},1000);
- 1. फ़ैंटॉमजेएस के साथ फ़्लैश काम कैसे करें?
- 2. फ़ैंटॉमजेएस
- 3. रेल किसी अन्य रूप के अंदर किसी फ़ॉर्म का हिस्सा प्रस्तुत करते हैं
- 4. फ़ैंटॉमजेएस उदाहरणों के 'पूल' का प्रबंधन कैसे करें
- 5. मैं फ़ैंटॉमजेएस स्क्रीन कैप्चर में @ फ़ॉन्ट-फेस कैसे प्रस्तुत करूं?
- 6. फ़ैंटॉमजेएस पृष्ठ पर एक लिंक पर क्लिक करें
- 7. किसी पृष्ठ का एक हिस्सा दिखाने के लिए IFrame की सामग्री को कैसे फसल करूं?
- 8. जावास्क्रिप्ट-प्रस्तुत पृष्ठ (इसके साथ बातचीत करने के बाद) का HTML प्राप्त करें
- 9. प्रस्तुत किए गए HTML पृष्ठ का स्क्रीनशॉट कैसे लें
- 10. फ़ैंटॉमजेएस कॉल से इंजेक्शनजेएस
- 11. कैपिबरा: किसी पृष्ठ की स्टाइलशीट का परीक्षण कैसे करें?
- 12. numpy के साथ बाइनरी फ़ाइल का हिस्सा कैसे पढ़ा जाए?
- 13. AJAX के साथ किसी भिन्न पृष्ठ से div का HTML कैसे प्राप्त करें?
- 14. पायथन के xml.dom.minidom के साथ एक डॉक्टरेट कैसे प्रस्तुत करें?
- 15. किसी जेएसपी पृष्ठ पर एक चर का निरीक्षण कैसे करें
- 16. फ़ैंटॉमजेएस कई पृष्ठों के साथ अप्रत्याशित लोड व्यवहार
- 17. पृष्ठ के किसी अनुभाग पर नेविगेट कैसे करें
- 18. बिना किसी पृष्ठ के लोडकंट्रोल का उपयोग
- 19. jQuery के साथ किसी पृष्ठ में सभी टेक्स्टबॉक्स कैसे जांचें?
- 20. Google के अनुक्रमण से किसी वेब पेज का हिस्सा कैसे बाहर निकालना है?
- 21. फ़्लोट के साथ इस बार चार्ट को कैसे प्रस्तुत करें
- 22. ZF2 में लेआउट के साथ मेल टेम्पलेट कैसे प्रस्तुत करें?
- 23. प्ले 2.0 के साथ बाइनरी कैसे प्रस्तुत करें?
- 24. यूआरएल स्ट्रिंग का डोमेन हिस्सा प्राप्त करें?
- 25. फ़ैंटॉमजेएस @ फ़ॉन्ट-चेहरे के मुद्दों को डिबगिंग
- 26. एमवीसी 3 रेजर के साथ एक पृष्ठ कैसे लेआउट करें?
- 27. फ़ैंटॉमजेएस पेज डंप स्क्रिप्ट समस्या
- 28. स्ट्रिंग का हिस्सा कैसे निकालें?
- 29. किसी अन्य नियंत्रक के दृश्य को प्रस्तुत करें
- 30. जावास्क्रिप्ट का उपयोग कर किसी पृष्ठ में किसी छवि का आरजीबी मान कैसे प्राप्त करें?
मैं समझता हूँ कि phantom.js नेतृत्वहीन है। विशेष रूप से मुझे जो चाहिए वह ब्राउजर व्यूपोर्ट में दिखाई देने वाली वेबपृष्ठ को कैप्चर करने की क्षमता है। क्या आप ऐसा करने के तरीके के बारे में जानते हैं? –
ठीक है, मैं समझता हूं कि आपका क्या मतलब है। मैं निश्चित रूप से नहीं जानता कि फैंटॉमजेएस इस तरह से काम करता है या नहीं। मुझे नहीं पता कि फैंटॉम के पास व्यूपोर्ट या उसके जैसा कुछ भी है। – jasonlfunk
मैं देखता हूं। मैं कुछ प्रकार के ढांचे की तलाश में हूं जो क्रोम एक्सटेंशन एपीआई के अंदर या कुछ फ़ंक्शन करता है जो मुझे ऐसा करने की अनुमति देता है। यदि आपके पास कोई पॉइंटर्स है, तो मैं इसकी सराहना करता हूं। –