、小确幸~~ 发表于 2019-5-23 14:00:02

使用ddt之后,打印发现重复

使用ddt之后,打印发现重复,如何解决该问题http://www.atstudy.com/files/course/2019/05-15/15592915e3f3589310.pnghttp://www.atstudy.com/files/course/2019/05-15/155939b45021654360.png


在学课程python Selenium深入实战电商平台http://www.atstudy.com/course/1607

学掌门网校 发表于 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]
查看完整版本: 使用ddt之后,打印发现重复