一次编写,到处测试 - Selenium 和 Python 在桌面和移动设备上的单元测试
Write Once, Test Everywhere - Selenium and Python's unittest on desktop and mobile
我正在使用 Selenium 和 Python 的单元测试,我正在为台式机、平板电脑和移动网站创建测试用例。但是,拥有三个测试相同事物的测试用例并不理想。
目前,我把self.driver.set_window_size(1366, 768)
放在桌面的测试方法中,self.driver.set_window_size(414, 736)
放在移动的测试方法中。所以我有两种测试方法,它们主要做同样的工作。
我正在寻找一些方法来封装 set_window_size()
并拥有一种测试方法,也许使用 if
循环来测试某些可能只出现在移动或桌面网站上的元素。
重构以将通用代码放入单独的方法中。
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__
中完成
借助 e4c5 的解决方案,我能够 运行 在桌面和移动设备上进行一个测试。
我需要一个 if 循环来测试可能在移动设备上但不在桌面设备上的元素,反之亦然。
所以我的解决方案是:
if self.driver.get_window_size() == {'height': 736, 'width': 414}:
我正在使用 Selenium 和 Python 的单元测试,我正在为台式机、平板电脑和移动网站创建测试用例。但是,拥有三个测试相同事物的测试用例并不理想。
目前,我把self.driver.set_window_size(1366, 768)
放在桌面的测试方法中,self.driver.set_window_size(414, 736)
放在移动的测试方法中。所以我有两种测试方法,它们主要做同样的工作。
我正在寻找一些方法来封装 set_window_size()
并拥有一种测试方法,也许使用 if
循环来测试某些可能只出现在移动或桌面网站上的元素。
重构以将通用代码放入单独的方法中。
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__
借助 e4c5 的解决方案,我能够 运行 在桌面和移动设备上进行一个测试。
我需要一个 if 循环来测试可能在移动设备上但不在桌面设备上的元素,反之亦然。
所以我的解决方案是:
if self.driver.get_window_size() == {'height': 736, 'width': 414}: