【发布时间】:2014-09-08 18:54:08
【问题描述】:
我目前有一个 unittest.TestCase 的子类,我用它来运行我的 selenium 测试:
class FunctionalTest(unittest.TestCase):
@classmethod
def setUpClass(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(1)
@classmethod
def tearDownClass(self):
self.browser.close()
def method1(self):
#some code here
def method2(self):
#some code here
我想继承这个类(FunctionalTest),我想更改 setUpClass 方法以禁用 Firefox 浏览器的 javascript,但仍然能够使用 FunctionalTest 的所有其他方法:
@classmethod
def setUpClass(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("javascript.enabled", False);
self.browser = webdriver.Firefox(profile)
self.browser.implicitly_wait(1)
像下面这样的子类化不起作用:
FunctionalTestNoJS(FunctionalTest):
@classmethod
def setUpClass(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("javascript.enabled", False);
self.browser = webdriver.Firefox(profile)
self.browser.implicitly_wait(1)
关于如何有效地解决这个问题的任何想法?
【问题讨论】:
-
在这种情况下定义“不工作”?
-
重写类方法正常,见docs.python.org/3/library/…
-
尝试删除@classmethod?该方法不应该被命名为 setUp() 吗?
-
@d_rez90:不,它是一个类方法,每个
TestCase类运行一次。 -
其实最近升级的火狐是我Selenium测试失败的根源;我虽然新测试不起作用 b/c 我的子类化不正确。
标签: python class selenium python-unittest