मेरे पास एक लंबा चलने वाला पायथन ऐप है जो समय-समय पर (प्रत्येक 30-60 सेकंड) सेलेनियम और क्रोम ड्राइवर के साथ एक वेबपृष्ठ खोलता है, कुछ जावास्क्रिप्ट चलाता है और एक स्क्रीनशॉट लेता है। यह एक्सवीएफबी में क्रोम के साथ एक ईसी 2 उबंटू इंस्टेंस पर चल रहा है और अधिकांश भाग के लिए सबकुछ काम कर रहा है, सिवाय इसके कि प्रोग्राम लटकाएगा। यह इन पंक्तियों में से एक पर हो रहा है:सेलेनियम Chromedriver लटका?
options = Options()
options.add_argument("--disable-web-security")
options.add_argument("--webdriver-logfile=webdrive.log")
dc = DesiredCapabilities.CHROME
dc['loggingPrefs'] = {'browser': 'ALL'}
driver = webdriver.Chrome(chrome_options=options, desired_capabilities=dc)
driver.get(url);
(मैं एक सटीक लाइन नहीं है, लेकिन मैं डिबग बयान मैं में डाल दिया है से पता है कि इसे यहाँ बीच में कहीं है)
दुर्भाग्य से, कार्यक्रम क्रैश नहीं होता है इसलिए इसमें कोई त्रुटि संदेश नहीं है, यह सिर्फ रात 7 बजे से अंतहीन रूप से प्रतीक्षा कर रहा है। strace -p 'python program pid'
रिटर्न चल रहा है: wait4(-1,
और strace -p 'chromedriver pid'
रिटर्न recvfrom(20,
चल रहा ps axjf
में देख सकते हैं कि प्रक्रिया अभी भी चल रहा है, इसकी सिर्फ कुछ नहीं कर रहा। मैं अब क्या करना है, किसी भी सुझाव के नुकसान की तरह हूँ?
chromedriver संस्करण: 2.10.267518
गूगल क्रोम 40.0.2214.111
सेलेनियम (पिप के साथ स्थापित): 2.42.1
#https://github.com/cgoldberg/xvfbwrapper
xvfb = Xvfb(width=1920, height=1920)
xvfb.start()
---- संपादित ----
मैंने अभी ChromeDriver 2.14.313457
और Selenium 2.44.0
पर अपडेट किया है, उम्मीद है कि यह इस मुद्दे को ठीक करेगा। मैं इसे अभी खोलने जा रहा हूं। अभी तक सलाह के लिए धन्यवाद दोस्तों!
---- संपादित ----
तो सेवा अभी भी फांसी समाप्त हो गया। मुझे आश्चर्य है कि ऐसा इसलिए है क्योंकि प्रत्येक स्क्रीनशॉट के लिए मैं Google क्रोम बंद और पुनरारंभ करता हूं? क्या यह संभवतः किसी भी तरह मेमोरी रिसाव का कारण बन रहा है? मैं इसका निदान कैसे कर सकता हूं?
यदि क्रोम विकल्प निर्दिष्ट नहीं हैं तो क्या यह लटका है? आप किस सेलेनियम और क्रोम संस्करण का उपयोग कर रहे हैं? – alecxe
इसके अलावा, डीबग लॉग संदेशों को जोड़ने का प्रयास करें और देखें कि यह कौन सी रेखा लटक रही है। साथ ही, दिखाएं कि आप 'xvfb' कैसे शुरू करते हैं। धन्यवाद। – alecxe
मेरे संपादन देखें। मैं कुछ बार इस पर डीबग संदेश जोड़ रहा हूं कि यह हुआ है, हालांकि मुझे लगता है कि मैं पर्याप्त नहीं था। – Trevor