【问题标题】:Running selenium from Visual Studio Code terminal with virtualenv使用 virtualenv 从 Visual Studio Code 终端运行 selenium
【发布时间】:2019-10-18 16:58:24
【问题描述】:

我已经尝试了 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

我已经在我的项目的settings.json文件中为python提供了合适的路径,例如:

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

【问题讨论】:

  • 你能解决你的问题吗?我对 Firefox / VSCode / geckodriver / Linux 有同样的问题。它只适用于无头模式的 VSCode。
  • 我用微软打开了一个错误:github.com/microsoft/vscode/issues/88390
  • @DjAlan 抱歉回复晚了,不,我没有。我放弃使用 Selenium 并选择了 Puppeteer,它对我的​​用例来说要快得多,而且它可以无头运行。

标签: selenium visual-studio-code selenium-chromedriver virtualenv geckodriver


【解决方案1】:

尝试无头运行它,如果它有效,那么打开新显示器的问题。

将以下内容粘贴到 VS Code 终端中,然后重试

export DISPLAY=":0"

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2022-01-16
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多