Чтобы закрыть экземпляры, когда вы пишете это без al oop, выполните следующее:
driver.close () - закрывает окно браузера, на котором установлен фокус.
driver.quit () - он в основном вызывает метод driver.dispose, который, в свою очередь, закрывает весь браузер windows и корректно завершает сеанс WebDriver.
Вам следует использовать driver.quit всякий раз, когда вы хотите закончить программу. Он закроет все открытое окно браузера и завершит сеанс WebDriver.
Подумайте о том, чтобы написать пример l oop следующим образом, это намного лучше справится с закрытием экземпляров.
Использование для запуска модуля multithreading
или multiprocessing
или subprocess
задание параллельно (почти параллельно).
Пример многопоточности
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 thre<ads to complete
for thread in thread_list:
thread.join()
print 'Test completed!'
Здесь создаются 5 браузеров для одновременного запуска тестовых случаев. Вместо того, чтобы реализовать тестовую логику c, я поставил время ожидания 2 секунды с целью демонстрации. Код запустит 5 firefox браузеров (протестировано с python 2.7), откроет Google и подождет 2 секунды, прежде чем выйти.
Журналы:
C:\Python27\python.exe C:/Users/swadchan/Documents/TestPyCharm/stackoverflow/so49617485.py
Test 0 started!
Test 1 started!
Test 2 started!
Test 3 started!
Test 4 started!
Test completed!
Process finished with exit code 0