Selenium Python quit () метод не работает из командной строки - PullRequest
0 голосов
/ 27 апреля 2018

Используя 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 () без удачи. Я не уверен, что я пропускаю / делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...