मैंने थोड़ा खोला और मैंने पाया कि कार्यक्षमता वहां है, लेकिन यह खुलासा नहीं है। इसलिए इसे एक आसान बंदर रिंच की आवश्यकता है ताकि इसे पकड़ लिया जा सके। यहां वह समाधान है जो मेरे लिए तब तक काम करता है जब तक कि इस कार्यक्षमता को वेबड्राइवर कॉल में पूरी तरह से उजागर नहीं किया जाता है।
संपादित करें: ऐसा लगता है कि सेवा_आर्ग अब सामने आए हैं, अब आपको प्रॉक्सी का उपयोग करने के लिए बंदर पैच सेलेनियम की आवश्यकता नहीं है ... उपयोग करने के लिए @ एलेक्स-चेक उत्तर देखें।
from selenium import webdriver
from selenium.webdriver.phantomjs.service import Service as PhantomJSService
phantomjs_path = '/usr/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs'
# monkey patch Service temporarily to include desired args
class NewService(PhantomJSService):
def __init__(self, *args, **kwargs):
service_args = kwargs.setdefault('service_args', [])
service_args += [
'--proxy=localhost:8080',
'--proxy-type=http',
]
super(NewService, self).__init__(*args, **kwargs)
webdriver.phantomjs.webdriver.Service = NewService
# init the webdriver
self.driver = webdriver.PhantomJS(phantomjs_path)
# undo monkey patch
webdriver.phantomjs.webdriver.Service = PhantomJSService
भी निम्नलिखित सेटिंग्स उपयोगी हैं, खासकर जब प्रॉक्सी का उपयोग करते समय लोड करने में बहुत लंबा समय लग सकता है।
max_wait = 60
self.driver.set_window_size(1024, 768)
self.driver.set_page_load_timeout(max_wait)
self.driver.set_script_timeout(max_wait)