以前我写过一个使用Selenium操作Chromium的教程,今晚想写个自动抢票小程序来着,发现有报错:
--------------------------------------------------------------------------- WebDriverException Traceback (most recent call last) File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\common\driver_finder.py:38, in DriverFinder.get_path(service, options) 37 try: ---> 38 path = SeleniumManager().driver_location(options) if path is None else path 39 except Exception as err: File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\common\selenium_manager.py:95, in SeleniumManager.driver_location(self, options) 93 args.append(value) ---> 95 output = self.run(args) 97 browser_path = output["browser_path"] File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\common\selenium_manager.py:141, in SeleniumManager.run(args) 140 if completed_proc.returncode: --> 141 raise WebDriverException(f"Unsuccessful command executed: {command}.\n{result}{stderr}") 142 return result WebDriverException: Message: Unsuccessful command executed: C:\Users\xxx\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\common\windows\selenium-manager.exe --browser chrome --browser-path C:\Users\xxx\jupyterbooks\chrome-win\chrome.exe --output json. {'code': 65, 'message': 'error sending request for url (https://storage.googleapis.com/chrome-for-testing-public/126.0.6437.0/win64/chromedriver-win64.zip): error trying to connect: 远程主机强迫关闭了一个现有的连接。 (os error 10054)', 'driver_path': '', 'browser_path': ''} The above exception was the direct cause of the following exception: NoSuchDriverException Traceback (most recent call last) Cell In[8], line 4 2 opts = Options() 3 opts.binary_location = chromium_path ----> 4 driver = webdriver.Chrome(options=opts) File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\chrome\webdriver.py:45, in WebDriver.__init__(self, options, service, keep_alive) 42 service = service if service else Service() 43 options = options if options else Options() ---> 45 super().__init__( 46 DesiredCapabilities.CHROME["browserName"], 47 "goog", 48 options, 49 service, 50 keep_alive, 51 ) File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\chromium\webdriver.py:51, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive) 47 self.vendor_prefix = vendor_prefix 49 self.service = service ---> 51 self.service.path = DriverFinder.get_path(self.service, options) 53 self.service.start() 55 try: File ~\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\common\driver_finder.py:41, in DriverFinder.get_path(service, options) 39 except Exception as err: 40 msg = f"Unable to obtain driver for {options.capabilities['browserName']} using Selenium Manager." ---> 41 raise NoSuchDriverException(msg) from err 43 if path is None or not Path(path).is_file(): 44 raise NoSuchDriverException(f"Unable to locate or obtain driver for {options.capabilities['browserName']}") NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
在网上查了半天也没发现什么好的解决办法,最后发现是没放chromedriver(或者chromedriver与chromium版本不匹配)。
chromedriver官网:https://chromedriver.chromium.org/
最新版下载地址:https://googlechromelabs.github.io/chrome-for-testing/
chromium官网:https://www.chromium.org/Home/
最新版下载地址:https://download-chromium.appspot.com/
把下载好的chromedriver放在Python安装目录里,和python.exe平级即可。
Comments | NOTHING