51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1271|回复: 1

[Python测试开发全栈班] 使用ddt之后,打印发现重复

[复制链接]

该用户从未签到

发表于 2019-5-23 14:00:02 | 显示全部楼层 |阅读模式
使用ddt之后,打印发现重复,如何解决该问题



在学课程
python Selenium深入实战电商平台

回复

使用道具 举报

该用户从未签到

发表于 2019-5-23 14:01:22 | 显示全部楼层
我修改了一下你的BaseTestCase这个类的代码部分,把setUpClass和tearDownClass方法改成了setUp和tearDown方法,这样每条测试用例都重新打开浏览器和关闭浏览器,避免三次执行之间的操作互相冲突。这样三次就都可以正常运行了。



import time
import unittest2
from selenium import webdriver


class BaseTestCase(unittest2.TestCase):

    def setUp(cls):
        cls.driver = webdriver.Chrome()
        cls.driver.maximize_window()
        cls.driver.implicitly_wait(5)
        # # 登录至 角色页面
        cls.driver.get(r"")
        cls.driver.find_element_by_id("User").send_keys("")
        cls.driver.find_element_by_id("Password").send_keys("")
        cls.driver.find_element_by_id("LoginButton").click()
        time.sleep(5)

    def tearDown(cls):
        time.sleep(3)
        cls.driver.quit()


如果你用的是@classmethod,第一次点击提交按钮失败时,页面保留在“添加role”页面,没有返回登录后的主页。第二次循环执行这个方法时,页面中就不存在下面这个元素了,程序找不到这个元素就会报错。

self.driver.find_element_by_css_selector("#AppWrapper > div.MainBox.ARIARoleMain.LayoutFixedSidebar.SidebarFirst > div.ResponsiveSidebarContainer > div > div:nth-child(2) > div.Content > ul > li:nth-child(1) > a > span > i")
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-3-29 13:04 , Processed in 0.060956 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表