numpy.int64类型无len()方法报错:Excel自动录入Web表单求助
解决Selenium传入numpy.int64到输入框报错:object of type 'numpy.int64' has no len()
问题原因
Selenium的send_keys()方法要求传入字符串类型参数,但你从DataFrame中提取的entry['Age']和entry['Salary']是numpy整数类型(numpy.int64),该类型没有len()方法——而send_keys内部逻辑会调用这个方法,因此触发报错。姓名、邮箱等字段能正常运行,是因为它们本身就是字符串类型。
解决方案
将numpy整数类型转换为字符串即可,有两种简单方式:
方式1:直接用str()转换
age_input.send_keys(str(entry['Age'])) salary_input.send_keys(str(entry['Salary']))
方式2:先转为Python原生int再转字符串(可选,兼容性更强)
age_input.send_keys(str(int(entry['Age']))) salary_input.send_keys(str(int(entry['Salary'])))
修改后的完整代码
for i in dataframe.index: entry = dataframe.iloc[i] web.find_element(By.ID,'addNewRecordButton').click() firstname_input = web.find_element(By.ID,'firstName') firstname_input.send_keys(entry['Firstname']) lastname_input = web.find_element(By.ID,'lastName') lastname_input.send_keys(entry['Lastname']) email_input = web.find_element(By.ID,'userEmail') email_input.send_keys(entry['Email']) age_input = web.find_element(By.ID,'age') age_input.send_keys(str(entry['Age'])) # 修复此处 salary_input = web.find_element(By.ID,'salary') salary_input.send_keys(str(entry['Salary'])) # 修复此处 departemen_input = web.find_element(By.ID,'department') departemen_input.send_keys(entry['Departemen'])
内容的提问来源于stack exchange,提问作者Becks
相关产品推荐
相关产品推荐

