使用virtualenv从Visual Studio代码终端运行selenium
我已经尝试了两个多小时从VisualStudio终端运行我的scraper。起初我认为问题在于我的chromedriver/geckodriver不是正确的用户所有/没有正确的rw权限,所以我检查了这个。此外,我的virtualenv归用户所有,并拥有相应的权限。 当我从控制台运行脚本时,它可以工作(这意味着首先激活使用virtualenv从Visual Studio代码终端运行selenium,selenium,visual-studio-code,selenium-chromedriver,virtualenv,geckodriver,Selenium,Visual Studio Code,Selenium Chromedriver,Virtualenv,Geckodriver,我已经尝试了两个多小时从VisualStudio终端运行我的scraper。起初我认为问题在于我的chromedriver/geckodriver不是正确的用户所有/没有正确的rw权限,所以我检查了这个。此外,我的virtualenv归用户所有,并拥有相应的权限。 当我从控制台运行脚本时,它可以工作(这意味着首先激活virtualenv,然后以用户身份运行脚本。因此,这不是chromedriver问题(甚至不是路径问题)。 当我尝试从Visual Studio代码终端运行它时,它不起作用,我不断
virtualenv
,然后以用户身份运行脚本。因此,这不是chromedriver问题(甚至不是路径问题)。
当我尝试从Visual Studio代码终端运行它时,它不起作用,我不断得到:
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"
}
尝试无头运行它,如果它工作正常,那么打开新显示器时会出现问题 在VS代码终端中粘贴以下内容,然后重试
export DISPLAY=":0"
你能解决你的问题吗?我对Firefox/VSCode/geckodriver/Linux也有同样的问题。它只在无头模式下的VSCode中工作。我在Microsoft打开了一个错误:@DjAlan抱歉,没有,我没有。我放弃使用Selenium,选择了Puppeter,它对我的用例来说速度更快,而且可以无头运行。