第一个问题:
PyCharm里面的c、m、F、f、v、p分别代表什么含义?
第二个问题:
我把我类里面的quit()方法都删了,但是在打开搜索a和搜索b时,a开了等b执行,a就关了,大概试了下,因为都是用的一个实例,所以一个实例对应的是一个driver吧。大致是这样。
如果这样写:
if __name__ == "__main__":
el = Keywords('chrome', 'http://www.baidu.com')
el.input_text('id', 'kw', '虚竹')
el.click_element('id', 'su')
sleep(3)
sp = Keywords('chrome', 'http://www.baidu.com')
sp.input_text('id', 'kw', '中森明菜')
sp.click_element('id', 'su')
这样就可以打开2个浏览器
如果是这么写:
if __name__ == "__main__":
el = Keywords('chrome', 'http://www.baidu.com')
el.input_text('id', 'kw', '虚竹')
el.click_element('id', 'su')
sleep(3)
el = Keywords('chrome', 'http://www.baidu.com')
el.input_text('id', 'kw', '中森明菜')
el.click_element('id', 'su')
他就只能打开1个chrome。
@ddt
class TestCases(unittest.TestCase):
def setUp(self):
driver = webdriver.Chrome()
self.sp = SearchPage(driver)
def tearDown(self):
self.sp.quit_browser()
@data(['http://www.baidu.com', '测试'], ['http://www.baidu.com', '测试'])
@unpack
def test_01(self, url, input_text):
self.sp.check(url, input_text)
sleep(3)
这个会生成两个浏览器但是会执行完后浏览器会关闭,修改思路:
1. @classmethod 直接调用类方法, setUPClass(cls)
2. 生成两个driver对象
3. 方法中 定义类的全局变量:cls.sp =
4. 初始化类,调用该类的构造函数__init__(self, driver),返回值为这个类的对象 :a = A()
@ddt
class TestCases(unittest.TestCase):
@classmethod
def setUpClass(cls):#调用类方法
print('strat')
#生成两个driver对象
driver1 = webdriver.Chrome()
#定义两个全局变量cls.sp、cls.cl
#初始化类,调用该类的构造函数__init__(self, driver),返回值为这个类的对象
cls.sp = SearchPage(driver1)
driver2 = webdriver.Chrome()
cls.cl = SearchPage(driver2)
@classmethod
def tearDownClass(cls):
print('end')
@data(['http://www.baidu.com', '测试'])
@unpack
def test_01(self,url, input_text):
self.sp.check(url, input_text)
sleep(3)
@data(['http://www.baidu.com', '测试2'])
@unpack
def test_02(self,url, input_text):
self.cl.check(url, input_text)
#sleep(3)