我正在尝试并排打开两个不同的URL。 首先,如果打开url1进行一些检查 然后它应该打开url2并进行一些检查 然后在执行测试后应同时关闭url1和url2
我已经能够打开两个url1和url2,但是tearDown仅关闭了url2。
我希望我的tearDown关闭两个网址。
这是我尝试过的代码
class Login(unittest.TestCase):
site_url1 = "https://www.google.com/"
site_url2 = "https://www.facebook.com/"
def setUp(self):
# create a new Firefox session
self.browser = webdriver.Firefox()
browser = self.browser
browser.get(self.site_url1)
def more_loggin(self):
# create a new Firefox session
self.browser = webdriver.Firefox()
browser = self.browser
browser.get(self.site_url2)
def tearDown(self):
self.browser.quit()
以上代码仅关闭site_url2,我希望它也关闭其他URL。 似乎self.browser具有site_url2的值,因此无法关闭另一个。 我该如何解决?
答案 0 :(得分:3)
这是因为每次调用self.browser
或setUp
时都要设置more_loggin
。
这意味着,如果您调用一个函数,假设setUp()
然后调用more_loggin
,则会丢失由Firefox
和{{1 }}将获得一个新实例,该实例是在setUp
的开头创建的。
调用self.browser
时,只有存储在more_loggin
中的最后一个实例将关闭,所有其他实例将保持打开状态。
我建议您将所有实例保存在类级别定义的列表中,然后tearDown
应该遍历每个实例并将其关闭。
self.browser