一次编写,随处测试 - Selenium和Python在桌面和移动设备上的单元测试

时间:2017-06-08 10:19:23

标签: python selenium cross-browser cross-platform python-unittest

我正在使用Selenium和Python的单元测试,并且我正在为桌面设备,平板电脑和移动网站创建测试用例。但是,有三个测试用例测试相同的东西并不理想。

目前,我将self.driver.set_window_size(1366, 768)置于桌面测试方法中,self.driver.set_window_size(414, 736)置于移动测试方法中。所以我有两种测试方法,主要做同样的工作。

我正在寻找一些方法来封装set_window_size()并拥有一种测试方法,可能使用if循环来测试一些可能只出现在移动或桌面网站上的元素。

2 个答案:

答案 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}: