मैं एक ही बात के साथ एक समस्या हुई। क्रोमऑप्शन बहुत अजीब है क्योंकि यह वांछित क्षमताओं के साथ एकीकृत नहीं है जैसा आप सोचेंगे। मैं सटीक विवरण भूल जाता हूं, लेकिन मूल रूप से ChromeOptions डिफ़ॉल्ट वांछित मानों पर रीसेट कर देगा, चाहे आपने वांछित क्षमताओं को निर्देशित किया हो या नहीं किया हो।
def __init__(self, executable_path="chromedriver", port=0,
chrome_options=None, service_args=None,
desired_capabilities=None, service_log_path=None, skip_capabilities_update=False):
"""
Creates a new instance of the chrome driver.
Starts the service and then creates new instance of chrome driver.
:Args:
- executable_path - path to the executable. If the default is used it assumes the executable is in the $PATH
- port - port you would like the service to run, if left as 0, a free port will be found.
- desired_capabilities: Dictionary object with non-browser specific
capabilities only, such as "proxy" or "loggingPref".
- chrome_options: this takes an instance of ChromeOptions
"""
if chrome_options is None:
options = Options()
else:
options = chrome_options
if skip_capabilities_update:
pass
elif desired_capabilities is not None:
desired_capabilities.update(options.to_capabilities())
else:
desired_capabilities = options.to_capabilities()
self.service = Service(executable_path, port=port,
service_args=service_args, log_path=service_log_path)
self.service.start()
try:
RemoteWebDriver.__init__(self,
command_executor=self.service.service_url,
desired_capabilities=desired_capabilities)
except:
self.quit()
raise
self._is_remote = False
:
मैं निम्नलिखित बंदर-पैच है कि मुझे ChromeOptions
की जटिलताओं के बारे में
परिवर्तन /selenium/webdriver/chrome/webdriver.py में निम्न कोड में चिंता किए बिना अपने ही dict निर्दिष्ट कर सकते हैं किया
जो कुछ भी बदल गया वह "skip_capabilities_update" kwarg था। अब मैं बस अपना खुद का निर्देश निर्धारित करने के लिए ऐसा करता हूं:
capabilities = dict(DesiredCapabilities.CHROME)
if not "chromeOptions" in capabilities:
capabilities['chromeOptions'] = {
'args' : [],
'binary' : "",
'extensions' : [],
'prefs' : {}
}
capabilities['proxy'] = {
'httpProxy' : "%s:%i" %(proxy_address, proxy_port),
'ftpProxy' : "%s:%i" %(proxy_address, proxy_port),
'sslProxy' : "%s:%i" %(proxy_address, proxy_port),
'noProxy' : None,
'proxyType' : "MANUAL",
'class' : "org.openqa.selenium.Proxy",
'autodetect' : False
}
driver = webdriver.Chrome(executable_path="path_to_chrome", desired_capabilities=capabilities, skip_capabilities_update=True)
स्पष्ट पूछने के लिए खेद है, लेकिन क्या आपने 'फ़ायरफ़ॉक्स' लाइनों को उनके क्रोम समकक्षों में बदल दिया है? क्या आप अपना कोड पोस्ट कर सकते हैं? –
इसके अलावा, आपका क्या मतलब है "कुछ भी नहीं होता?" क्या कोई त्रुटि संदेश है? किसी भी प्रकार की निकास स्थिति? –
मैंने देखा कि यदि मेरे पास इंटरनेट एक्सप्लोरर में प्रॉक्सी सेट है तो स्क्रिप्ट काम नहीं कर रही है (एफएफ खुल रहा है लेकिन driver.get ("google.com/";) पर विफल रहता है। कोई त्रुटि संदेश नहीं है, यह कनेक्ट करने से इंकार कर देता है। यदि इंटरनेट एक्सप्लोरर में कोई प्रॉक्सी सेटिंग्स सक्षम नहीं है तो स्क्रिप्ट काम कर रही है। – sarbo