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

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

把悲伤留给自己

2019-08-23

import ddt
import unittest
from handle.register_business import RegisterBusiness
from selenium import webdriver
from time import sleep
import os
import HTMLTestRunner
from util.exlcel_util import ExcelUtil

ex = ExcelUtil()
data = ex.get_data()

@ddt.ddt
class FirstDdtCase(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()
        cls.driver.get('http://www.5itest.cn/register')
        cls.driver.maximize_window()

    def setUp(self):
        self.driver.refresh()
        self.registerb = RegisterBusiness(self.driver)

    def tearDown(self):
        sleep(3)
        for method_name, error in self._outcome.errors:
            if error:
                case_name = self._testMethodName
                file_path = os.path.join(r'..\\report\\' + case_name + '.png')
                self.driver.save_screenshot(file_path)

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()

    '''
    @ddt.data(
        ['982364','ddff343','111111','111111','user_email_error','请输入有效的电子邮件地址'],
        ['121998734@qq.com','l1','111111','111111','user_email_error','请输入有效的电子邮件地址'],
        ['@qq.com', 'l1', '111111', '111111', 'user_email_error', '请输入有效的电子邮件地址']
    )
    @ddt.unpack
    '''
    @ddt.data(*data)
    def test_register_case(self,data):
        email,username,password,code,codeerror,errortext = data
        error_text = self.registerb.register_functiom(email,username,password,code,codeerror,errortext)
        self.assertFalse(error_text,'执行失败')

if __name__ == '__main__':
    file_path = os.path.join(r'..\\report\\' + "first_case.html")
    f = open(file_path,'wb')
    suite = unittest.TestLoader().loadTestsFromTestCase(FirstDdtCase)
    runner = HTMLTestRunner.HTMLTestRunner(stream=f,title='测试报告1',description="这个是测试报告1",verbosity=2)
    runner.run(suite)

图片描述

写回答

2回答

慕尼黑8578524

2021-01-07

//img.mukewang.com/szimg/5ff67901095edfc908150161.jpg转换为文本格式后,需要有文本小标,或者直接转换一下password的格式:

    @ddt.data(*data)

    def test_register_case(self,data):

        email,username,password,code,assertCode,assertText = data

        password = str(password)

        email_error = self.login.register_function(email,username,password,code,assertCode,assertText)

        self.assertFalse(email_error,"测试失败")


2
0

Mushishi

2019-08-24

把你register handle层那一行代码前面的元素信息打印出来,你现在这个类型错误,你看一下你是否定位元素有问题

0
5
Mushishi
回复
LeonardLei
你类型错误,肯定没有len
2019-12-01
共5条回复

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

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

1883 学习 · 1093 问题

查看课程