Python Selenium: выйдите из браузера, если простаиваете - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь составить список безголовых Chrome веб-драйверов следующим образом:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--log-level=3')
browsers = {}

def add_browser(browser_id):
     browsers[browser_id] = webdriver.Chrome(executable_path=chromedriver, options=options)
     browsers[browser_id].get(URL)

Однако я хотел бы закрыть браузеры, которые были активны и простаивали слишком долго. Как я могу это реализовать?

Если это помогает - это используется для Flask приложения.

1 Ответ

0 голосов
/ 10 марта 2020
from datetime import datetime

def add_browser(browser_id):
     browsers[browser_id] = {
          browser: webdriver.Chrome(executable_path=chromedriver, options=options),
          last_active: datetime.now()
     }
     browsers[browser_id][browser].get(URL)
     // do some stuff... scrape links? navigate through pages? input text?

Затем при написании сценария в разделе //do some stuff вы можете сделать одну из двух вещей:

// "check in" to confirm the session is still active
browsers[browser_id][last_active] = datetime.now()
// during a loop that you are worried about getting stuck in due to the browser being idle
idle_time = datetime.now() - browsers[browser_id][last_active]
if idle_time.seconds > maximum_idle_time:
     browsers[browser_id][browser].quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...