我正在使用Selenium访问一个需要登录的服务。我登录了一次,然后登录数据保存到用户数据中,我指定的目录如下:
chrome_options.add_argument("--user-data-dir=%s" % self.user_dir)
一切都很好,直到我更新了系统(Ubuntu服务器),Chromium从108更新到110,我面临的第一个问题是我需要将ChromeDriver更新到110. 0. 5481. 77。
现在,当我像往常一样使用Selenium时,花了很长时间才得到以下错误:
File "/home/user/bots/teleBots/app/wa.py", line 49, in __init__
browser = webdriver.Chrome(executable_path=driver, options=self.chrome_options,
File "/home/user/ak_env_9/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
super().__init__(
File "/home/user/ak_env_9/lib/python3.9/site-packages/selenium/webdriver/chromium/webdriver.py", line 106, in __init__
super().__init__(
File "/home/user/ak_env_9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 288, in __init__
self.start_session(capabilities, browser_profile)
File "/home/user/ak_env_9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 381, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/user/ak_env_9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 444, in execute
self.error_handler.check_response(response)
File "/home/user/ak_env_9/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 249, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unable to discover open pages
我搜索了解决方案,其中大多数建议使用选项:
chrome_options.add_argument("--no-sandbox")
以及其他:
chrome_options.add_argument("--remote-debugging-port=9222")
但在我删除用户目录选项之前,我什么都不想做:
#chrome_options.add_argument("--user-data-dir=%s" % self.user_dir)
这对我很有效,但每次运行脚本时我都必须登录。
我该如何解决这个问题?
是否有无论如何要降级 chrome 浏览器到108?(我需要Ubuntu的deb文件)
或者使用user-data-dir以外的任何方法来保持登录活动?
1条答案
按热度按时间pftdvrlh1#
我很幸运地在我的下载目录中找到了一个旧版本的google chrome(108)。
我使用以下命令安装了它:
然后,我下载了正确版本的Chrome驱动程序从:https://chromedriver.chromium.org/downloads
是的!生活恢复正常。可能是新的chrome驱动程序中的一个bug。希望我们能为版本110找到其他解决方案