51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1570|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-23 14:00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用ddt之后,打印发现重复,如何解决该问题



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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 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-11-22 07:06 , Processed in 0.096430 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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