如何修复硒“DevToolsActivePort 文件不存在"Python 中的异常
问题描述
当我同时使用参数 --headless
和 user-data-dir
时.Selenium 引发 selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort 文件不存在
异常.如果只使用其中一个,那么一切都按需要进行.
When I use both arguments --headless
and user-data-dir
. Selenium raise selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
exception. If only 1 of them is used, then everything works as needs.
我尝试交换参数并删除其中一些.指定 chromedriver.exe 的完整路径.这些都没有帮助.
I tried to swap arguments and remove some of them. Specified the full path to chromedriver.exe. None of this helped.
chromeOptions.add_argument("--disable-dev-shm-using") 没有帮助.
login = "test"
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
chromeOptions.add_argument("--no-sandbox")
chromeOptions.add_argument("--disable-setuid-sandbox")
chromeOptions.add_argument("--disable-dev-shm-using")
chromeOptions.add_argument("--disable-extensions")
chromeOptions.add_argument("--disable-gpu")
chromeOptions.add_argument("start-maximized")
chromeOptions.add_argument("disable-infobars")
chromeOptions.add_argument("--headless")
chromeOptions.add_argument(r"user-data-dir=.cookies\" + login)
b = webdriver.Chrome(chrome_options=chromeOptions)
b.get("https://google.com/")
b.quit()
解决方案
我通过添加参数解决它 --remote-debugging-port=<port>
I solve it by adding an argument --remote-debugging-port=<port>
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
chromeOptions.add_argument("--no-sandbox")
chromeOptions.add_argument("--disable-setuid-sandbox")
chromeOptions.add_argument("--remote-debugging-port=9222") # this
chromeOptions.add_argument("--disable-dev-shm-using")
chromeOptions.add_argument("--disable-extensions")
chromeOptions.add_argument("--disable-gpu")
chromeOptions.add_argument("start-maximized")
chromeOptions.add_argument("disable-infobars")
chromeOptions.add_argument(r"user-data-dir=.cookies\test")
b = webdriver.Chrome(chrome_options=chromeOptions)
b.get("https://google.com/")
b.quit()
相关文章