使用mac上的python和selenium打开使用默认用户配置文件的chrome

时间:2017-12-23 18:22:17

标签: python google-chrome selenium headless-browser google-chrome-headless

我正在尝试让Selenium打开Chrome,就像我自己打开它一样,即我应该登录我的帐户,如Facebook。

我有以下代码:

def startChrome():
    options = webdriver.ChromeOptions() 
    options.add_argument("user-data-dir=/Users/alexiseggermont/Library/Application Support/Google/Chrome/Default/")
    driver = webdriver.Chrome(chrome_options=options)
    driver.set_page_load_timeout(60)
    return driver

driver = startChrome()
url = 'https://www.facebook.com'
driver.get(url)

然而,这使我无需登录即可访问Facebook。我已检查chrome://version,但个人资料网址实际上是正确的。我做错了什么?

使用Python 3,Chrome版本63.0.3239.84,MacOS High Sierra

2 个答案:

答案 0 :(得分:3)

从路径末尾移除Default/

options.add_argument("user-data-dir=/Users/alexiseggermont/Library/Application Support/Google/Chrome/")

在PC上,它通常是这样的:

options.add_argument('user-data-dir=C:/Users/{USERNAME}/AppData/Local/Google/Chrome/User Data')

您需要检查您是否有兼容的chromedriver和chrome版本 - 最简单的方法是检查两者是否都是最新的。

如果在打开时立即崩溃,请检查the chromedriver help page。也许尝试禁用所有扩展程序,看看是否有帮助。

答案 1 :(得分:1)

作为EnergyNumbers答案的补充,您还必须确保在启动脚本之前确实退出了chrome。

就我而言,我经常遇到错误Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist)

但是当我在启动脚本之前退出chrome时,那立即消失了。显然,不能同时打开同一配置文件的2个实例。