python爬虫使用selenium模块时报错TypeError: object of type ‘WebElement‘ has no len()

29 篇文章 1 订阅
4 篇文章 0 订阅
在使用Selenium进行网页自动化登录时,遇到了TypeError,原因是WebElement对象名与参数名相同导致的混淆。解决方法是确保定义的变量名与调用的包内参数名不重复,如将`user_pwd.send_keys(user_pwd)`改为`user_pwd.send_keys(userpwd)`,避免这种命名冲突,从而正确地输入密码并完成登录操作。
摘要由CSDN通过智能技术生成

问题背景

使用selenium模块登陆某个页面,在传参的时候报错
TypeError: object of type ‘WebElement’ has no len()

以下是可能出现问题的代码

# 输入账号,没有调用账号包就手写
user_name.send_keys(user_name)

# 输入内容
user_pwd = dr.find_element_by_id('p')
# 输入密码,没有调用账号包就手写
user_pwd.send_keys(user_pwd)

问题解决

该文件定义的实参名字尽量不要和被调用的代码里面的实参重名,系统会不知道调用哪个参数而报错
在这里插入图片描述
在调用包时,该文件定义的实参名字尽量不要和被调用的代码里面的实参重名,例如

# 输入账号,没有调用账号包就手写
user_name.send_keys(username)

# 输入内容
user_pwd = dr.find_element_by_id('p')
# 输入密码,没有调用账号包就手写
user_pwd.send_keys(userpwd)

在这里插入图片描述
因为参数和webelement对象名称重复了,就会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值