Запуск селена из терминала Visual Studio Code с помощью virtualenv - PullRequest
0 голосов
/ 18 октября 2019

Более 2 часов я пытался запустить мой скребок из терминала Visual Studio. Сначала я подумал, что проблема в том, что мой chromedriver / geckodriver не принадлежал правильному пользователю / не имел надлежащих прав rw, поэтому я проверил это. Кроме того, мой virtualenv принадлежит пользователю и имеет соответствующие права. Когда я запускаю скрипт из консоли, он работает (это означает, что сначала нужно активировать virtualenv, а затем запустить скрипт от имени пользователя. Так что это не проблема chromedriver (даже проблема пути). Он не работает, когда я пытаюсь запуститьэто из терминала Visual Studio Code, и я продолжаю получать:

Эта ошибка для chromedriver:

    paras = self.driver.find_elements(By.XPATH, "//p")
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 1007, in find_elements
    'value': value})['value'] or []
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-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: chrome=77.0.3865.120)

И эта ошибка для firefox:

    return webdriver.Firefox()
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
    keep_alive=True)
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/mike/Documents/Envs/Scrapers/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process

Я указал соответствующий путь для python в файле settings.json моего проекта, как таковой:

{
    "python.pythonPath": "/home/mike/Documents/Envs/Scrapers/bin/python3"
}
...