我正在尝试让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
答案 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个实例。