老师,报错TypeError: object of type 'float' has no len()

来源:5-7 项目中以文件的形式实现数据驱动

仲夏rww

2020-08-06

图片描述
老师,报错TypeError: object of type ‘float’ has no len()不知道什么原因造成的,现象是没有输入password,也没有生成HTML报告:
图片描述
【具体代码如下:】请老师帮我看看:
#coding=utf-8
import ddt
import os
import unittest
import warnings
from selenium import webdriver
from util.excel_util import ExcelUtil
import HTMLTestRunner
from business.register_business import RegisterBusiness

邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息

#判断元素的code:assertCode
#错误提示信息:assertText
#数据驱动如何运用到注册页面,我们需要重构哪些信息?
#以下面这个方法拿到数据
ex = ExcelUtil()
data = ex.get_data() #get_data()是result结果中的那一串数据
file_name = “F:/test_project/test_images/test01.png”
@ddt.ddt
class FirstDdtCase(unittest.TestCase):
def setUp(self):
warnings.simplefilter(‘ignore’, ResourceWarning)
self.driver = webdriver.Chrome()
self.driver.get(‘http://www.5itest.cn/register’)
self.login = RegisterBusiness(self.driver)
print(‘这个是case的前置条件’)
#后置做的事情仅仅是关闭浏览器
def tearDown(self):
for method_name,error in self._outcome.errors:
if error:
case_name = self._testMethodName
file_path = os.path.join(os.path.abspath(os.path.dirname(os.getcwd())) + ‘/report/’+ case_name + ‘.png’)
self.driver.save_screenshot(file_path)
self.driver.close()
print(‘这个是case的后置条件’)

# @ddt.data(
#     ['12','rww01', '111111','code','user_email_error','请输入有效的电子邮件地址'],
#     ['@qq.com', 'rww01', '111111', 'code', 'user_email_error', '请输入有效的电子邮件地址'],
#     ['12@qq.com', 'rww01', '111111', 'code', 'user_email_error', '请输入有效的电子邮件地址']
#     )
# @ddt.unpack  # 解包
#从data中去获取 Excel的数据,用list赋值的方式把data传进去。
@ddt.data(*data)
# 名字从test_login_email_error改成test_register_case
def test_register_case(self,data):
    email, username, password, code, assertCode, assertText = data
    email_error = self.login.register_function(email,username,password,code,assertCode,assertText)
    # 通过assert  判断是否是  error
    return self.assertFalse(email_error, "test_login_email_error用例执行了")

if name == ‘main’:
file_path = os.path.join(os.path.abspath(os.path.dirname(os.getcwd())) + ‘/report/’ + ‘first_case01.html’)
# 把file_path打开,而且要以读写的模式
f = open(file_path, ‘wb’)
suite = unittest.TestLoader().loadTestsFromTestCase(FirstDdtCase)
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=‘this is first report2’, description=‘这是我们第二次测试报告’,
verbosity=2)
runner.run(suite)

【register_function】

def register_function(self,email,username,password,code,assertCode,assertText):
    self.user_base(email, username, password, code)
    if self.register_h.get_user_text(assertCode, assertText) == None:
        # print('邮箱检验不成功')
        return True
    else:
        return False
写回答

1回答

Mushishi

2020-08-06

你把你register handle 层的send value 的元素找到的啥,你看你那个错误of type ‘float’ has no len()。元素对象不对

0
0

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程