我正在使用Selenium和Python的单元测试,并且我正在为桌面设备,平板电脑和移动网站创建测试用例。但是,有三个测试用例测试相同的东西并不理想。
目前,我将self.driver.set_window_size(1366, 768)
置于桌面测试方法中,self.driver.set_window_size(414, 736)
置于移动测试方法中。所以我有两种测试方法,主要做同样的工作。
我正在寻找一些方法来封装set_window_size()
并拥有一种测试方法,可能使用if
循环来测试一些可能只出现在移动或桌面网站上的元素。
答案 0 :(得分:1)
重构将公共代码放入单独的方法中。
class Mytest(unittest.TestCase):
def do_test(self):
# your actual test code
def test_something_mobile(self):
self.driver.set_window_size(1366, 768)
self.do_test()
def test_something_mobile(self):
self.driver.set_window_size(414, 768)
self.do_test()
上述代码假设驱动程序在其他地方初始化,通常在__init__
答案 1 :(得分:0)
借助e4c5的解决方案,我能够在桌面和移动设备上运行一个测试用例。
我需要有一个if循环来测试可能在移动设备上但不在桌面设备上的元素,反之亦然。
所以我的解决方案是:
if self.driver.get_window_size() == {'height': 736, 'width': 414}: