मैं दिए गए पृष्ठों के स्क्रीनशॉट लेने के लिए क्रोम और क्रोमियम के हेडलेस संस्करण का उपयोग कर रहा हूं। यह विंडोज और उबंटू सर्वर पर ठीक काम करता है, लेकिन उबंटू डेस्कटॉप वीएम पर नहीं।

जब मैं एक स्क्रीनशॉट लेने का प्रयास करता हूं (--स्क्रीनशॉट ध्वज) या उत्पन्न करने के लिए उबंटू डेस्कटॉप पर मुझे त्रुटि मिलती है "एकाधिक टैब खोलें केवल तभी समर्थित है जब रिमोट डीबगिंग सक्षम है" एक पीडीएफ फाइल (<कोड>--प्रिंट-टू-पीडीएफ फ्लैग)।

मैं --remote-debugging-port ध्वज के साथ दूरस्थ डिबगिंग सक्षम कर सकता था, लेकिन जब यह सक्षम होता है, तो आप --screenshot ध्वज या --print-to-pdf ध्वज का उपयोग नहीं कर सकते।

मैं उबंटू डेस्कटॉप पर इन झंडों का उपयोग कैसे कर सकता हूं, इस पर कोई विचार?

विवरण

खिड़कियों पर

संस्करण :
गूगल क्रोम संस्करण 84.0.4147.125

प्रयुक्त कमांड :
> start chrome --headless --screenshot=%CD%\example_sh.png https://example.com/

नोट: आपको विंडोज़ पर स्क्रीनशॉट के लिए एक पथ देना होगा अन्यथा यह फ़ाइल नहीं बनाएगा, इसलिए मैंने %CD%\ केवल विंडोज़ पर जोड़ा है। लेकिन यहां यह मुद्दा नहीं है।

कमांड आउटपुट :
कोई नहीं

फ़ाइल जनरेट की गई :
Yes

उबंटू सर्वर पर

संस्करण :

$ chromium-browser --version
Chromium 84.0.4147.105 Built on Ubuntu , running on Ubuntu 18.04

प्रयुक्त कमांड :
$ chromium-browser --headless --screenshot=example_sh.png https://example.com/

कमांड आउटपुट :
[0812/102830.971006:INFO:headless_shell.cc(615)] Written to file example_sh.png.

फ़ाइल जनरेट की गई :
Yes

उबंटू डेस्कटॉप पर

संस्करण :

$ chromium-browser --version
Chromium 84.0.4147.105 snap

प्रयुक्त कमांड :
$ chromium-browser --headless --screenshot=example_sh.png https://example.com/

कमांड आउटपुट :
[0812/123941.367535:ERROR:headless_shell.cc(174)] Open multiple tabs is only supported when remote debugging is enabled.

फ़ाइल जनरेट की गई :
No


ध्यान दें कि .deb संकुल को बदलने वाला समाधान वह नहीं है जो मैं चाहता हूं। यह एक अच्छा समाधान हो सकता है यदि मैं इन झंडों का उपयोग करने वाला अकेला था, लेकिन यह एक समाधान के रूप में काम नहीं करेगा, क्योंकि मैं कुछ कोड के अंदर उनका उपयोग करके एक कमांड को कॉल कर रहा हूं जो एक पुस्तकालय का हिस्सा है जिसे अन्य लोगों के साथ साझा किया जाता है। .

0
vgalin 12 अगस्त 2020, 14:13

1 उत्तर

सबसे बढ़िया उत्तर

मै सुझाव दूंगा:

  1. ओपन क्रोमियम इसके साथ इंटरएक्टिव: chromium-browser https://example.com/ या यदि वह विफल हो जाता है तो केवल chromium-browser

  2. इस नए सत्र में एक टैब में chrome://version पर जाएं और कमांड लाइन और निष्पादन योग्य पथ नोट करें।

  3. कमांड लाइन में असामान्य रिक्त स्थान की तलाश करें, जैसे कि फ़ाइल पथ के साथ एक तर्क से जो ठीक से बच नहीं पाया है। (इसे किसी भी उपयोगकर्ता नाम/आदि को साफ करने के बाद प्रश्न और मुद्दे में जोड़ा जा सकता है।)

  4. निष्पादन योग्य पथ में इंगित बाइनरी का उपयोग करके सीधे अपने --headless कमांड को बनाने का प्रयास करें। यदि कारण एक रैपर से था, तो यह काम करना चाहिए, यदि नहीं, तो उस बाइनरी का अंतःक्रियात्मक रूप से उपयोग करते हुए, chrome://version -> कमांड लाइन को फिर से देखें। अगर मैंगलिंग उन चीजों से आती है जो इसे अपनी कमांड लाइन में इंजेक्ट करने के लिए संकलित की जाती हैं तो कोई अच्छा कामकाज नहीं हो सकता है।

2
lossleader 21 अगस्त 2020, 01:52