WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
这是一个老问题,但我没有找到适合我的情况的答案。
我的代码是一个简单的测试代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url="http://news.163.com/"
chrome_options = Options()
# specify headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('–headless')
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("disable-infobars")
browser = webdriver.Chrome(options=chrome_options)
browser.set_page_load_timeout(300)
browser.set_script_timeout(300)
browser.get(url)
title=browser.find_elements_by_xpath('//div[@id="js_top_news"]/h2/a')
print(title[0].get_attribute('innerHTML'))
browser.quit()
driver.quit()
并且我已经在选项中添加了所有参数。
ps -aux |grep google-chrome
并终止我的 wsl 中的所有进程。
Google Chrome 100.0.4896.88 和 chrome-driver 100.0.4896.60 并且它们在环境路径中添加的相同目录中。
我会尝试使用更新版本的驱动程序。否则升级或降级您的版本以查看是否有任何这些工作。这个错误一般是因为不兼容
Google Chrome 100.0.4896.88 和 chrome-driver 100.0.4896.60 完全在同步。
但是根据 documentation:
A common cause for Chrome to crash during startup is running Chrome as
root user (administrator) on Linux. While it is possible to work
around this issue by passing --no-sandbox
flag when creating
your WebDriver session, such a configuration is unsupported and highly
discouraged. Please configure your environment to run Chrome as a
regular user instead.
解决方案
删除以下参数:
--no-sandbox
--disable-gpu
--disable-dev-shm-usage
disable-infobars
并以 non-root 用户(non-administrator) 用户.
在 wsl1 中,人们不能使用 linux 版本的 chrome。所以只需使用 windows 版本 chrome.exe 和 chromdriver.exe。
我的问题通过简单的 mv chromdriver.exe chromdriver
解决了,因为 selenium 只能识别没有 '.exe'
的 chromdriver
这是一个老问题,但我没有找到适合我的情况的答案。
我的代码是一个简单的测试代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url="http://news.163.com/"
chrome_options = Options()
# specify headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('–headless')
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("disable-infobars")
browser = webdriver.Chrome(options=chrome_options)
browser.set_page_load_timeout(300)
browser.set_script_timeout(300)
browser.get(url)
title=browser.find_elements_by_xpath('//div[@id="js_top_news"]/h2/a')
print(title[0].get_attribute('innerHTML'))
browser.quit()
driver.quit()
并且我已经在选项中添加了所有参数。
ps -aux |grep google-chrome
并终止我的 wsl 中的所有进程。
Google Chrome 100.0.4896.88 和 chrome-driver 100.0.4896.60 并且它们在环境路径中添加的相同目录中。
我会尝试使用更新版本的驱动程序。否则升级或降级您的版本以查看是否有任何这些工作。这个错误一般是因为不兼容
Google Chrome 100.0.4896.88 和 chrome-driver 100.0.4896.60 完全在同步。
但是根据 documentation:
A common cause for Chrome to crash during startup is running Chrome as root user (administrator) on Linux. While it is possible to work around this issue by passing
--no-sandbox
flag when creating your WebDriver session, such a configuration is unsupported and highly discouraged. Please configure your environment to run Chrome as a regular user instead.
解决方案
删除以下参数:
--no-sandbox
--disable-gpu
--disable-dev-shm-usage
disable-infobars
并以 non-root 用户(non-administrator) 用户.
在 wsl1 中,人们不能使用 linux 版本的 chrome。所以只需使用 windows 版本 chrome.exe 和 chromdriver.exe。
我的问题通过简单的 mv chromdriver.exe chromdriver
解决了,因为 selenium 只能识别没有 '.exe'