【发布时间】: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