PythonのSeleniumのwebdriverを使っていてdriverを定義する箇所(webdriver.Chrome)で急に以下のエラーが出るようになりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 76, in __init__ RemoteWebDriver.__init__( File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 319, in execute response = self.command_executor.execute(driver_command, params) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 374, in execute return self._request(command_info[0], url, body=data) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 397, in _request resp = self._conn.request(method, url, body=body, headers=headers) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\_request_methods.py", line 118, in request return self.request_encode_body( File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\_request_methods.py", line 217, in request_encode_body return self.urlopen(method, url, **extra_kw) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\poolmanager.py", line 432, in urlopen conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\poolmanager.py", line 303, in connection_from_host return self.connection_from_context(request_context) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\poolmanager.py", line 328, in connection_from_context return self.connection_from_pool_key(pool_key, request_context=request_context) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\poolmanager.py", line 351, in connection_from_pool_key pool = self._new_pool(scheme, host, port, request_context=request_context) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\poolmanager.py", line 265, in _new_pool return pool_cls(host, port, **request_context) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\connectionpool.py", line 196, in __init__ timeout = Timeout.from_float(timeout) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\util\timeout.py", line 190, in from_float return Timeout(read=timeout, connect=timeout) File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\util\timeout.py", line 119, in __init__ self._connect = self._validate_timeout(connect, "connect") File "C:\Users\miyab\anaconda3\envs\aliexpress\lib\site-packages\urllib3\util\timeout.py", line 156, in _validate_timeout raise ValueError( ValueError: Timeout value connect was <object object at 0x0000022C13FC89C0>, but it must be an int, float or None. |
検索してみるとPythonのバージョンが新しいと発生すると出てくるが試しにPythonのバージョンを3.10→3.8に変更してもエラーは出続けてしまう。
エラー内容をよく見てみるとwebdriver-managerから「urllib3」を読んでいてその先でエラーになっていることがわかりました。なので、他のseleniumのエラーが出ていなかったプロジェクトの方のurllib3のバージョンを見てみると1.26.16を使っていることがわかりました。
エラーが出る方のプロジェクトだと2.0.3を使っていることがわかりました。(どうやら最近になってメジャーバージョンが上がったようです。)
以下のコマンドを実行してurllib3のバージョンを下げることでエラーが出なくなりました。
1 |
pip install urllib3==1.26.16 |
Edgeでのダウンロード保存先設定の変更でも同様にエラーが出ていて、この記事どおりバージョンを落としたところ成功しました!
ありがとうございます。