Python Selenium 问题

2023-06-06 07:57:41 +08:00
 LSB

代码如下

from selenium import webdriver

import time
# 打开浏览器
#driver = webdriver.Chrome()
driver = webdriver.Firefox()
#driver = webdriver.Edge()
# 设置浏览器最大化
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(3)
# 打开网页
driver.get("http://www.baidu.com")

出现的错误

Traceback (most recent call last):
  File "C:\Users\kkk\PycharmProjects\pythonProject\main.py", line 8, in <module>
    driver = webdriver.Firefox()
             ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 170, in __init__
    RemoteWebDriver.__init__(
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 319, in execute
    response = self.command_executor.execute(driver_command, params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\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\kkk\AppData\Local\Programs\Python\Python311\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\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\_request_methods.py", line 118, in request
    return self.request_encode_body(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\_request_methods.py", line 217, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\poolmanager.py", line 422, in urlopen
    conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\poolmanager.py", line 303, in connection_from_host
    return self.connection_from_context(request_context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\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\kkk\AppData\Local\Programs\Python\Python311\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\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\poolmanager.py", line 265, in _new_pool
    return pool_cls(host, port, **request_context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 196, in __init__
    timeout = Timeout.from_float(timeout)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\timeout.py", line 190, in from_float
    return Timeout(read=timeout, connect=timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\timeout.py", line 119, in __init__
    self._connect = self._validate_timeout(connect, "connect")
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kkk\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\timeout.py", line 156, in _validate_timeout
    raise ValueError(
ValueError: Timeout value connect was <object object at 0x000001E6DFDE4530>, but it must be an int, float or None.

三个浏览器都试过了,都是同样的问题,有小伙伴帮看看么

1077 次点击
所在节点    问与答
6 条回复
tulongtou
2023-06-06 08:13:04 +08:00
urllib3 怎么安装的?版本不匹配吧,是不是安装了最新版的 urllib3 ,最新版 urllib3 有很多 breaking changes
beixiao
2023-06-06 08:24:07 +08:00
驱动按照版本装了吗
LSB
2023-06-06 08:51:56 +08:00
@beixiao 按照版本装了,也设置环境变量了
LSB
2023-06-06 08:52:14 +08:00
@tulongtou 我降级版本看看
1d074bfa18d34f6c
2023-06-06 09:25:10 +08:00
语法没有问题,应该是 Selenium 或者 Webdriver 版本问题,建议卸载重装
LSB
2023-06-07 09:22:38 +08:00
@tulongtou 谢谢 果然是 urllib3 版本问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/946118

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX