Python3.7环境下Selenium自动登录程序报Unresolved import: webdriver错误
Python3.7环境下Selenium自动登录报错解决
Unresolved import: webdriver 报错处理
- 首先确认当前使用的Python3.7解释器未安装匹配的Selenium依赖,直接通过该解释器对应的pip执行安装命令:
pip install selenium==3.141.0
该版本与Python3.7完全兼容,且适配代码中使用的旧版元素定位API,不会出现高版本Selenium的语法兼容问题。 - 若安装完成后IDE仍提示导入未解析,检查项目配置的解释器路径,确认当前项目关联的Python环境就是刚才安装Selenium的3.7版本,未错选系统中其他版本的Python解释器。
- 代码中直接调用
webdriver.Chrome()启动浏览器,需要提前准备与本地Chrome浏览器版本匹配的ChromeDriver,可将驱动文件放入系统环境变量路径或项目根目录,避免启动时报驱动缺失错误。
代码逻辑问题修正(导入正常后仍会触发运行报错)
- 代码中所有通过
find_elements_by_*方法定位的元素,返回值是匹配结果组成的列表,直接对列表执行click()、send_keys()操作会触发类型错误,需要改为匹配单个元素的find_element_by_*方法,或取列表的第一个元素后再执行对应操作。 find_element_by_class_name方法仅支持匹配单个类名,代码中传入的带空格的多类名字符串无法完成定位,需要改用CSS选择器匹配多类名组合的元素。- 元素类名选择存在笔误:定位加入房间按钮的类名片段
waves-ligh缺少末尾的t,正确拼写为waves-light。 - 网页加载存在网络延迟,
driver.get()执行完成后不能立刻进行元素定位操作,需要增加固定等待时长(例如引入time模块后执行time.sleep(2))等待页面完全渲染,否则会频繁触发找不到元素的报错。
内容的提问来源于stack exchange,提问作者i a
相关产品推荐
相关产品推荐

