selenium.common.exceptions.WebDriverException: Сообщение: недопустимый идентификатор сеанса при использовании Selenium с ChromeDriver и Chrome через Python - PullRequest
0 голосов
/ 06 июня 2019

Я пишу некоторый код с использованием Selenium, и в один момент я делаю 7 запросов на разные сайты. Для первого это отлично работает. Однако для других я получаю ошибку идентификатора сеанса. Я думаю, что мой браузер настроен правильно, так как я получаю результаты с первого сайта. Я пытался поместить WebDriverWait между запросами, но безрезультатно. Я думаю, что сайты могут блокировать мои запросы. У кого-нибудь есть идеи, как решить эту проблему?

Извините, если это что-то глупое или я делаю что-то не так, я совсем новый ^^

Заранее спасибо!

Traceback (most recent call last):
  File "/home/cena/PycharmProjects/Frikandelbroodje/main.py", line 56, in <module>
    dirk_price = get_price(dirk_url, dirk_classname)
  File "/home/cena/PycharmProjects/Frikandelbroodje/main.py", line 44, in get_price
    browser.get(url)
  File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid session id
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Linux 4.15.0-50-generic x86_64)

1 Ответ

0 голосов
/ 07 июня 2019

недопустимый идентификатор сеанса

Ошибка недопустимый идентификатор сеанса - это ошибка WebDriver , которая возникает, когда сервер не распознает уникальный сеансидентификатор.Это происходит, если сеанс был удален или если идентификатор сеанса недействителен .

Сеанс WebDriver можно удалить одним из следующих способов:

  • явное удаление сеанса : сеанс WebDriver явно удаляется при явном вызове метода quit() следующим образом:

    • блок кода:

      from selenium import webdriver
      from selenium.common.exceptions import InvalidSessionIdException
      
      driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
      print("Current session is {}".format(driver.session_id))
      driver.quit()
      try:
          driver.get("https://www.google.com/")
      except Exception as e:
          print(e.message)
      
    • Консольный вывод:

      Current session is a9272550-c4e5-450f-883d-553d337eed48
      No active session with ID a9272550-c4e5-450f-883d-553d337eed48
      
  • Неявное удаление сеанса :Сеанс WebDriver неявно удаляется, когда вы закрываете последнее окно или вкладку, вызывая метод close() следующим образом:

    • Блок кода:

      driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
      print("Current session is {}".format(driver.session_id))
      # closes current window/tab
      driver.close()
      try:
          driver.get("https://www.google.com/")
      except Exception as e:
          print(e.message)
      
    • Вывод на консоль:

      Current session is a9272550-c4e5-450f-883d-553d337eed48
      No active session with ID a9272550-c4e5-450f-883d-553d337eed48
      

Заключение

Поскольку первый запрос работает нормально, но для других вы получаете сеанс Идентификатор ошибка, наиболее вероятно, что WebDriver контролируется Веб-браузер обнаруживается и, следовательно, блокирует следующий запросts.

Существуют различные причины, по которым WebDriver , управляемый Web Browser , обнаруживается и одновременно блокируется.Вы можете найти пару подробных обсуждений в:

...