New to this, apologies for the novice question.

Trying to run a script using Python, Selenium and the unittest module. Have the typical setUp(), test\_1, test\_2, tearDown() method structure. Since I've added in more than one test, I get the following error:
 selenium.common.exceptions.InvalidSessionIdException: Message: Tried to run command without establishing a connection

How can I resolve this?

I have looked into similar problems people have been facing with this issue, but in almost all cases the issue is not related to anything I am encountering (cronjobs for example)

My program looks like this...

```
class MyTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        #my setup code here...
        cls.driver = webdriver.Firefox(executable_path='my_gecko_driver')
        cls.driver.get('www.my_url.com')
        cls.driver......  # various other tasks

    def test_1(self):
        # my test code here....
        foo = self.driver.find_element_by_xpath('/button_elem/')
        foo.click()
        # etc etc....

    def test_2(self):
        # my test code here....
        bar = self.driver.find_element_by_xpath('/button_elem/')
        bar.click()
        # etc etc....

    @classmethod
    def tearDown(cls):
        print('Entered tearDown function.')
        # close the browser window
        cls.driver.close()

if __name__ == '__main__':
unittest.main()

```

Before I added the second test, the test ran successfully. 

Now I am getting the error: 
selenium.common.exceptions.InvalidSessionIdException: Message: Tried to run command without establishing a connection

I suspect this is to do with the tearDown method perhaps not working correctly? However I thought this method was called at the end of every test\_x upon finishing.

I have also noticed that Pycharm is highlighting 'driver' in the line 'cls.driver.close()' which I am also not too sure about. It says unresolved attribute reference' however is this not created in the setUp() method?