मैं वास्तव में अजगर और सेलेनियम के साथ भ्रमित हो रहा हूं। मैंने मैक पर सेलेनियम के साथ क्रोम और फैंटमज दोनों स्थापित किए हैं और यह ठीक काम कर रहा है।

हालांकि, मैं केवल प्रेत को बिना सिर के चला सकता हूं, और चीजों को दो बार (प्रेत और क्रोम के लिए) कोड करना वास्तव में निराशाजनक हो रहा है, बस मैं देख सकता हूं कि क्या हो रहा है। खासकर, क्योंकि वे काफी अलग तरीके से काम करते हैं।

मैं जो समझता हूं उससे ये दो बातें हैं:

डॉकर सेलेनियम - https://github.com/elgalu/docker-selenium

यह क्या हो रहा है यह देखने के लिए वीएनसी का उपयोग करके हेडलेस फ़ायरफ़ॉक्स और क्रोम की अनुमति देता है।

सेलेनियम ग्रिड एक्सटेंशन - https://github.com/zalando/zalenium

यह समानांतर निष्पादन की अनुमति देता है। हालांकि, मैं सोच रहा हूं कि क्या मुझे वास्तव में इसकी आवश्यकता है, क्योंकि मैंने अपनी समानांतर निष्पादन दिनचर्या पहले से ही सबसे पहले लिखी है?

पिछले शोध से मेरी समझ यह है कि सेलेनियम ग्रिड वास्तव में पायथन (इसके जावा आधारित) के लिए काम नहीं करता है

अगर कोई मुझे सीधे उपयोग करने के लिए सेट कर सकता है तो यह बहुत अच्छा होगा।

मैं सिर्फ क्रोम हेडलेस का उपयोग करने के बारे में सोच रहा हूं और उम्मीद है कि मैं अभी भी अपने समानांतर निष्पादन को एकजुट करने में सक्षम हूं

3
Ke. 14 मार्च 2017, 18:25

1 उत्तर

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

आप चीजों का एक गुच्छा मिला रहे हैं, आइए स्पष्ट करें:

  • PhantomJS एक हेडलेस ब्राउज़र है जो WebKit रेंडरिंग इंजन (बिल्कुल क्रोम की तरह नहीं) का उपयोग करता है और यह UI के साथ नहीं चल सकता।
  • आपको दो बार कोड करने की आवश्यकता नहीं है, आप कॉन्फ़िगरेशन फ़ाइल से ब्राउज़र का नाम प्राप्त कर सकते हैं और इंटरफ़ेस webdriver के साथ काम करके जो भी ब्राउज़र आप चाहते हैं उसे बना सकते हैं।
  • अगर आप विशेष रूप से क्रोम को हेडलेस चलाना चाहते हैं, तो इसे, हालांकि AFAIK यह बीटा चरणों में है और केवल Linux पर है।
  • समानांतर में चलना कई तरीकों से प्राप्त किया जा सकता है (डॉकर, ग्रिड, एक परीक्षण ढांचा, आदि ...) आपके मामले के आधार पर, आपको वह चुनना चाहिए जो आपको सूट करे। आपके मामले में मुझे लगता है कि डॉकटर और ग्रिड एक ओवरहेड है और आपको यूनीटेस्ट का उपयोग जारी रखना चाहिए: 1. Docker आपको क्रोम को वर्चुअल डिस्प्ले (हेडलेस की तरह) के साथ चलाने देता है, लेकिन इसकी विशेषता तेजी से स्केलिंग में है, जो मुझे लगता है कि आपको इसकी आवश्यकता नहीं है। <मजबूत>2. सेलेनियम ग्रिड ज्यादातर ब्राउज़र, ओएस मैट्रिक्स के लिए उपयोग किया जाता है। इससे कोई फर्क नहीं पड़ता कि यह Java आधारित है क्योंकि यह एक स्टैंडअलोन सर्वर है जिसे आप किसी भी भाषा में remotewebdriver का उपयोग करके कनेक्ट करते हैं।

तो मुझे आशा है कि यह है

आपको सीधे सेट करें

;)

1
Moshisho 15 मार्च 2017, 11:37
गंभीरता से मुझे सीधे मेरे दोस्त सेट किया - बहुत बहुत धन्यवाद। दो बार कोडिंग के बारे में निश्चित नहीं है, क्योंकि मेरे लिए क्या हो रहा है (जब मैं प्रॉक्सी और कुछ अन्य चीजें सेट करता हूं) वह विशिष्ट कोड है जो उपयोग किए जा रहे ड्राइवर के लिए प्रासंगिक है, विशेष रूप से त्रुटि जांच के साथ। साथ ही, फ़ायरफ़ॉक्स में कुछ बग हैं और त्रुटियों को नहीं उठा रहा है (जबकि क्रोम करता है), इसलिए मुझे इसके लिए वर्कअराउंड का एक गुच्छा बनाना होगा। यह मो पर मेरे लिए बहुत समय बर्बाद कर रहा है, इसलिए मुझे लगता है कि मैं पहले डॉकर/ग्रिड/क्रोम हेडलेस के साथ प्रयास करूंगा और फिर अगर वह काम नहीं करता है, तो अपने क्रोमियम सुझाव पर जाएं।
 – 
Ke.
15 मार्च 2017, 23:00
1
एनपी! मुझे यकीन नहीं है कि इसे पायथन में कैसे किया जाए, लेकिन आप रनटाइम में जांच सकते हैं कि इंटरफ़ेस के साथ काम करते समय भी आप किस ब्राउज़र के साथ चल रहे हैं .. सी # में यह कुछ ऐसा होगा if (typeof(driver)==typeof(FirefoxDriver)) then handleSpecificError()
 – 
Moshisho
16 मार्च 2017, 13:24
1
यह वास्तव में अच्छा है, तुम एक रत्न मोशिशो हो। यह मुझे इतना समय बचा रहा है। उम्मीद करते है आपका दिन अच्छा हो :)
 – 
Ke.
17 मार्च 2017, 01:03
धन्यवाद दोस्त! आप भी ;)
 – 
Moshisho
17 मार्च 2017, 14:20