I think you can do that. But I feel the better or easier way to do that is using different windows. Having said that we can use either multithreading or multiprocessing or subprocess module to trigger the task in parallel (near parallel).
Multithreading example
Let me show you a simple example as to how to spawn multiple tests using threading module.
from selenium import webdriver import threading import time def test_logic(): driver = webdriver.Firefox() url = 'https://www.google.co.in' driver.get(url) # Implement your test logic time.sleep(2) driver.quit() N = 5 # Number of browsers to spawn thread_list = list() # Start test for i in range(N): t = threading.Thread(name='Test {}'.format(i), target=test_logic) t.start() time.sleep(1) print(t.name + ' started!') thread_list.append(t) # Wait for all threads to complete for thread in thread_list: thread.join() print('Test completed!')
Here I am spawning 5 browsers to run test cases at one time. Instead of implementing the test logic I have put sleep time of 2 seconds for the purpose of demonstration. The code will fire up 5 firefox browsers (tested with python 2.7), open google and wait for 2 seconds before quitting.
Logs:
Test 0 started! Test 1 started! Test 2 started! Test 3 started! Test 4 started! Test completed! Process finished with exit code 0
multiprocessing, it will take knowledge and work, unless you are looking to hire someone to do the job for you, then it just takes money.