Текстовый файл Chromedriver занят - PullRequest
3 голосов
/ 28 мая 2020

У меня есть приложение, которое запускает селен и проводит некоторые тесты. когда я запускаю свой код в автономном режиме, он работает отлично. Но когда я запускаю его несколько раз, чтобы протестировать несколько вещей одновременно, я получаю сообщение об ошибке.

Вот мой код:

    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument("window-size=1920,1080")
    chrome_options.add_argument("--disable-features=NetworkService")
    driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
    driver.get(URL)

и вот ошибка

    files = self.__unpack(file_path)
    File "/usr/local/lib/python3.6/dist-packages/webdriver_manager/driver_cache.py", line 99, in __unpack
    return extract_zip(path, to_directory)
    File "/usr/local/lib/python3.6/dist-packages/webdriver_manager/archive.py", line 7, in extract_zip
    archive.extractall(to_directory)
    File "/usr/lib/python3.6/zipfile.py", line 1524, in extractall
    self._extract_member(zipinfo, path, pwd)
    File "/usr/lib/python3.6/zipfile.py", line 1578, in _extract_member
    open(targetpath, "wb") as target:
    OSError: [Errno 26] Text file busy: '/home/root/.wdm/drivers/chromedriver/80.0.3987.106/linux64/chromedriver'

Насколько я понимаю, существует экземпляр chromedriver, который уже запущен, что возможно, поскольку я могу запустить этот код в фоновом режиме. Как мне справиться с этой ошибкой?

1 Ответ

0 голосов
/ 10 июня 2020

Я считаю, что вы правы: ошибка возникает, когда уже запущен экземпляр chrome.

Чтобы исправить, сначала найдите запущенные процессы chrome. Вы можете сделать это с помощью процессов поиска, которые содержат имя chrome, например:

pidof chrome

Затем вы можете убить их все так:

pkill -f chrome

Повторно запустив свой код впоследствии не должно вызывать этой ошибки.

...