неизвестная ошибка: сеанс удален из-за сбоя страницы из-за неизвестной ошибки: невозможно определить состояние загрузки из-за сбоя вкладки с помощью ChromeDriver Selenium - PullRequest
0 голосов
/ 23 декабря 2018

Я использую InstaPy, который использует Python и Selenium.Я запускаю скрипт на Cron и время от времени он вылетает.Так что это действительно нерегулярно, иногда это хорошо проходит.Я уже писал на GitHub Repo, но ответа там не получил, поэтому сейчас я спрашиваю, есть ли у кого-нибудь идея, почему.

Это цифровой сервер Ubuntu для океана, и я используюэто в безголовом режиме.Версия драйвера видна в журнале.Вот сообщения об ошибках:

ERROR [2018-12-10 09:53:54] [user]  Error occurred while deleting cookies from web browser!
b'Message: invalid session id\n  (Driver info: chromedriver=2.44.609551 (5d576e9a44fe4c5b6a07e568f1ebc753f1214634),platform=Linux 4.15.0-42-generic x86_64)\n'
Traceback (most recent call last):
  File "/root/InstaPy/instapy/util.py", line 1410, in smart_run
    yield
  File "./my_config.py", line 43, in <module>
    session.follow_user_followers(['xxxx','xxxx','xxxx','xxxx'], amount=100, randomize=True, interact=True)
  File "/root/InstaPy/instapy/instapy.py", line 2907, in follow_user_followers
    self.logfolder)
  File "/root/InstaPy/instapy/unfollow_util.py", line 883, in get_given_user_followers
    channel, jumps, logger, logfolder)
  File "/root/InstaPy/instapy/unfollow_util.py", line 722, in get_users_through_dialog
    person_list = dialog_username_extractor(buttons)
  File "/root/InstaPy/instapy/unfollow_util.py", line 747, in dialog_username_extractor
    person_list.append(person.find_element_by_xpath("../../../*")
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 351, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 659, in find_element
    {"using": by, "value": value})['value']
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
  (Session info: headless chrome=70.0.3538.110)
  (Driver info: chromedriver=2.44.609551 (5d576e9a44fe4c5b6a07e568f1ebc753f1214634),platform=Linux 4.15.0-42-generic x86_64)

During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
  File "/root/InstaPy/instapy/instapy.py", line 3845, in end
    self.browser.delete_all_cookies()
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 878, in delete_all_cookies
    self.execute(Command.DELETE_ALL_COOKIES)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
  (Session info: headless chrome=71.0.3578.80)
  (Driver info: chromedriver=2.44.609551 (5d576e9a44fe4c5b6a07e568f1ebc753f1214634),platform=Linux 4.15.0-42-generic x86_64)

Есть идеи, в чем причина и как ее решить?

1 Ответ

0 голосов
/ 29 декабря 2018

Хотя вы видите ошибку как:

Error occurred while deleting cookies from web browser!
b'Message: invalid session id\n  (Driver info: chromedriver=2.44.609551 (5d576e9a44fe4c5b6a07e568f1ebc753f1214634),platform=Linux 4.15.0-42-generic x86_64)\n'

Основное исключение:

selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed

Испытания кода позволили бы нам понять, что происходит не так.


Решение

Существуют различные решения этой проблемы.Однако согласно UnknownError: сеанс удален из-за сбоя страницы из-за сбоя вкладки эту проблему можно решить одним из следующих способов:

  • Добавьте следующее chrome_options:

    chrome_options.add_argument('--no-sandbox')         
    
  • Похоже, что на некоторых страницах Chrome происходит сбой в контейнерах Docker из-за слишком малого размера /dev/shm.Поэтому вам, возможно, придется исправить маленький размер /dev/shm.

  • Пример:

    sudo mount -t tmpfs -o rw,nosuid,nodev,noexec,relatime,size=512M tmpfs /dev/shm
    
  • Это также работает, если вы используете -v /dev/shm:/dev/shm возможность поделиться хост /dev/shm

  • Еще один способ заставить его работать - добавить chrome_options как --disable-dev-shm-usage.Это заставит Chrome использовать каталог /tmp.Однако это может замедлить выполнение, поскольку вместо памяти будет использоваться диск.

    chrome_options.add_argument('--disable-dev-shm-usage')        
    

из вкладки произошел сбой

из вкладки произошел сбой был WIP ( Работа в процессе ) с Chromium Team в течение достаточно долгого времени, что относится к Linux, пытающемуся всегда использовать / dev / shm для неисполняемой памяти.Вот ссылки:


Ссылка

Подробное обсуждение можно найти в org.openqa.selenium.SessionNotCreatedException: сеанс не создан, исключение из ошибки сбоя вкладки при выполнении с сервера Jenkins CI

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