|
10鱼币
呜呜呜呜救救我
我跟着视频打的但是不知道为什么不停的报错,但是我转牛角尖的性格就想把他解决掉
报错信息是这样的
- 7
- 6
- 1
- 2
- 3
- None
- http://cal.apple886.com/
- 4
- 5
- TypeError: PageCalc() takes no arguments
复制代码
这个是业务层,关于测试计算机加法的练习
- import parameterized as parameterized
- from test01.po1.base.get_driver import GetDriver
- from test01.po1.page.page_calc import PageCalc
- import unittest
- from selenium import webdriver
- class Testcalc(unittest.TestCase):
- print('1')
- driver = None
- # setup
- @classmethod
- def setUpClass(cls):
- print('2')
- # 获取driver
- cls.driver = GetDriver().get_driver()
- print("5")
- # 初始化
- cls.calc = PageCalc(cls.driver)
- # teardown
- @classmethod
- def tearDownClass(cls):
- GetDriver.quit_driver()
- # 测试加法方法
- @parameterized.parameterized.expand([(1, 2, 3)])
- def test_add_cal(self, a, b, expect):
- print('10')
- self.calc.page_add_calc(a, b)
- try:
- # 断言
- self.assertEqual(self.calc.page_result_get(), expect)
- except AssertionError:
- # 截图
- self.calc.page_get_screenshot()
- def assertEqual(self, param, expect):
- pass
复制代码
下面是获取driver的封装
- from selenium import webdriver
- from test01.po1 import page
- class GetDriver:
- # 设置类属性
- driver = None
- # 获取driver
- @classmethod
- def get_driver(cls):
- print('3')
- print(cls.driver)
- if cls.driver is None:
- cls.driver = webdriver.Chrome()
- cls.driver.maximize_window()
- print(page.url)
- cls.driver.get(page.url)
- print("4")
- return cls.driver
- # 退出driver
- @classmethod
- def quit_driver(cls):
- if cls.driver:
- cls.driver.quit()
- cls.driver = None
复制代码
下面是页面层的一些封装
- from selenium.webdriver.common.by import By
- from test01.po1.base.base import Base
- from test01.po1 import page
- from test01.po1.page import calc_add, calc_eql, calc_result, calc_clear
- class PageCalc(Base):
- print('6')
- # 点击数字
- def page_num_click(self,num):
- print('0')
- for i in num:
- loc = By.name, "simple{}".format(i)
- self.base_click_num(loc)
- # 点击加号
- def page_add_click(self):
- self.base_click_num(calc_add)
- # 点击等号
- def page_eql_click(self):
- self.base_click_num(calc_eql)
- # 获取结果
- def page_result_get(self):
- return self.base_get_value_element(calc_result)
- # 清屏
- def page_clear_click(self):
- self.base_click_num(calc_clear)
- def page_get_screenshot(self):
- self.base_get_screenshot()
- #组装
- def page_add_calc(self,a,b):
- print('9')
- self.page_num_click(a)
- self.page_add_click()
- self.page_num_click(b)
- self.page_eql_click()
- self.page_result_get()
- self.page_clear_click()
复制代码
下面是基础层一些操作的封装
- import time
- from selenium import webdriver
- from selenium.webdriver.support.wait import WebDriverWait
- class Base:
- print('7')
- # 查找元素
- def base_find_element(self,loc):
- print('8')
- return WebDriverWait(self.driver,timeout=30,poll_frequency=0.5).until(lambda x:x.find_element(*loc))
- # 点击
- def base_click_num(self,loc):
- self.base_find_element(loc).click()
- # 获取value值封装
- def base_get_value_element(self,loc):
- return self.base_find_element(loc).get_atrribute("value")
- # 截图
- def base_get_screenshot(self):
- self.driver.get_screenshot_as_file("./{}.png".format(time.strftime("%Y_%m_%d_%H_%M_%S")))
复制代码
报错的那些数字是我再找哪步开始出错,似乎是初始化setup里的- # 初始化
- cls.calc = PageCalc(cls.driver)
复制代码
这一步显示没有参数,但是我已经传参了呀,在get driver里面也返回了
|
|