打开和关闭Firefox浏览器的两个实例

时间:2019-06-26 02:01:14

标签: python selenium

我正在尝试并排打开两个不同的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的值,因此无法关闭另一个。 我该如何解决?

1 个答案:

答案 0 :(得分:3)

这是因为每次调用self.browsersetUp时都要设置more_loggin。 这意味着,如果您调用一个函数,假设setUp()然后调用more_loggin,则会丢失由Firefox和{{1 }}将获得一个新实例,该实例是在setUp的开头创建的。

调用self.browser时,只有存储在more_loggin中的最后一个实例将关闭,所有其他实例将保持打开状态。

我建议您将所有实例保存在类级别定义的列表中,然后tearDown应该遍历每个实例并将其关闭。

self.browser