我想在谷歌个人资料中使用硒,我创建了以下代码:
options = webdriver.ChromeOptions()
options.add_argument(r"user-data-dir=C:UsersmyprofileAppDataLocalGoogleChromeUser Data") #Path to my chrome profile
driver = webdriver.Chrome(executable_path=r"C:chromedriver.exe", options=options)
driver.get(url)
我得到了这个错误:
InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
我还尝试了另一个配置文件,但返回了相同的错误:
options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=C:/Users/mxs/AppData/Local/Google/Chrome/User Data')
options.add_argument('--profile-directory=Profile 2')
driver = webdriver.Chrome(executable_path=r"C:chromedriver.exe", options=options)
driver.get(url)
此外,我尝试了Jupyter Notebook和VSCode 中的代码
建议1
如果您可以一次只运行一个selenium进程,那么您可以使用队列来实现它。只要您只使用一个进程来访问用户目录,就不会导致任何错误。
建议2
如果你想继续登录某个网站,你可以重复使用cookie。在这种情况下,您不需要使用user-data-dir
的东西。Selenium将在每次运行时自动创建临时user-data-dir
。
建议3
如果你仍然想在每个会话中使用相同的配置文件,下面是破解方法。你可以不使用原始的--user-data-dir,而是将原始配置文件目录的所有内容复制到某个临时目录,并在每次启动chrome-selence时将其与--user-ddata-dir一起使用。
建议
当你试图运行python脚本时,关闭所有的chrome窗口。我得到错误
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
当我打开一扇镀铬窗户时。因此,最好关闭所有的镀铬窗口,然后再试一次。