Используя python 3.6.2 и FF (geckodriver-v0.20.1-win64), у меня есть попытка / исключить установку блока, чтобы закрыть селен при любых исключениях, которые я ожидаю закрыть все экземпляры браузера FF, открытого селен. У меня есть этот код:
while 1:
try:
print(now() + " [+] GETTING OBJECT...")
browser.get(url)
obj = browser.find_element_by_class_name('search_result_row')
objID = browser.execute_script(
'return document.getElementsByClassName( '
'"search_result_row" )[0].children[1].innerText.trim()')
print("\nObject " + objID + " received @ " + now())
objDSC = browser.execute_script(
'return document.getElementsByClassName( '
'"search_result_row" )[0].children[2].innerText.trim()')
print('\n' + objDSC)
for type in objTypes:
print("CHECKING IF OBJECT IS: " + type + "...")
if type in objDSC:
print("OBJECT IS OF USEABLE TYPE.")
else:
print("OBJECT IS NOT OF USEABLE TYPE.\n")
time.sleep(5)
except:
while(browser):
print('Quitting browser...')
browser.quit()
time.sleep(3)
sys.exit(0)
Когда я запускаю сценарий из командной строки, используя «python filename.py», я вижу, что в диспетчере задач запускаются 4x FF-процессы, однако при ошибке или SIGINT «Выход из браузера ...» просто зацикливается, как и ожидалось, но процессы 4x FF не заканчиваются (я ждал несколько минут, чтобы быть уверенным). Я также попробовал browser.close () перед методом quit () без удачи. Я не уверен, что я пропускаю / делаю неправильно?