मैं सेलेनियम के साथ नए (2016) नेतृत्वहीन क्रोमियम का संस्करण का उपयोग करने की कोशिश कर रहा हूँ/ChromeDriver (अतीत में, मैं फ़ायरफ़ॉक्स xfvb के साथ प्रयोग किया है, लेकिन इस का वादा किया काफी बेहतर)।सेलेनियम ChromeDriver नव संकलित नहीं पहचानता है बिना सिर क्रोमियम (अजगर)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
l_option = Options()
l_option.add_argument('headless')
l_option.add_argument('disable-notifications')
l_option.binary_location = '/home/fi11222/Headless_Chromium/headless_shell'
l_driver = webdriver.Chrome(chrome_options=l_option)
:
मैं स्रोतों से क्रोमियम का एक बिना सिर संस्करण तैयार की है निर्देश मैं here पाया और के आधार पर (मैं नहीं किसी भी पहले से बने बाइनरी मिला) तो मैं सेलेनियम के माध्यम से शुरू करने के लिए निम्नलिखित कोड का इस्तेमाल किया
एक ही कोड मानक क्रोमियम के साथ काम करता
के रूप में है, तथापि, मैं निम्नलिखित त्रुटि मिलती है (अगर मैं binary.location
विकल्प निकालने के लिए):
selenium.common.exceptions.WebDriverException: Message: unknown error: unrecognized Chrome version: HeadlessChrome/59.0.3032.0
(Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-53-generic x86_64)
स्पष्ट रूप से, हेडलेस क्रोमियम बाइनरी को एक संस्करण आईडी के साथ संकलित किया गया है जो ChromeDriver पहचान नहीं पाता है। मदद !!
पर्यावरण:
- संकलन: उबंटू 16.04 सर्वर
- सेलेनियम निष्पादन: लिनक्स टकसाल 18,1
अपने क्रोम ड्राइवर का समर्थित क्रोम संस्करण देखें। मैंने पढ़ा है कि यह क्रोम 54 से 56 का समर्थन करता है जबकि आपका हेडलेस क्रोम 59 है। पिछले क्रोम संस्करण – BangTheBank
स्थापित करने का प्रयास करें। क्योंकि 59 से पहले संस्करण स्पष्ट रूप से हेडलेस मोड का समर्थन नहीं करते थे। यह सुविधा केवल मध्य 2016 तक ही है। बीटीडब्ल्यू, मैं कैसे जान सकता हूं कि क्रोम वेबड्राइवर का कौन सा विशेष संस्करण समर्थन करता है? – fi11222
इसके अलावा, मैंने ChromeDriver स्रोतों में चेक किया है। स्पष्ट रूप से कोई अधिकतम संस्करण नहीं है, केवल न्यूनतम, जो अब 55 स्पष्ट रूप से है। तो समस्या कहीं और है। – fi11222