TKinter调用返回Selenium WebDriver的函数后传参变为tuple报错
问题成因
webtoollogin函数存在多返回值设计:直接运行gesmall.py时,你大概率是直接在脚本内消费返回值,只用到了第一个WebDriver对象,或者调用时已经做了正确解包;但在smallui.py中导入调用时,你直接将整个返回元组赋值给了webpage变量,没有做解包操作- smallui.py中调用
webtoollogin的代码存在语法疏漏:如果赋值语句末尾多写了逗号(比如webpage = webtoollogin(),),Python会自动将单返回值包装为单元素元组 - 模块缓存未更新:修改gesmall.py的返回值逻辑后没有清除Python缓存,旧的
__pycache__文件依然返回多值元组
解决方法
- 核对gesmall.py中
webtoollogin的return语句:
如果是多返回值写法(比如return driver, login_success, user_info),在smallui.py中调用时必须做解包,只需要WebDriver对象的话可以写webpage, *_ = webtoollogin(),需要用到其他返回值就按顺序对应变量接收 - 检查smallui.py中
webtoollogin的调用行,删除赋值语句末尾多余的逗号,确保语法为webpage = webtoollogin() - 清除项目目录下的
__pycache__文件夹,重启运行环境后重新测试 - 可临时添加调试代码定位问题:在
webtoollogin调用后增加print(type(webpage), webpage),可以快速确认返回值的类型和结构
内容的提问来源于stack exchange,提问作者Greg Davey
相关产品推荐
相关产品推荐

