myt*_*lon 8 python webdriver python-3.x selenium-chromedriver selenium-webdriver
我正在尝试使用 Selenium WebDriver 和 ChromeDriver 连接到现有会话并设置下载文件夹。由于某种原因,它总是失败并抛出以下错误:
\n>>> from selenium import webdriver\n>>>\n>>> chromeOptions = webdriver.ChromeOptions()\n>>>\n>>> download_folder = "D:\\\\Test"\n>>> preferences = {\n... "download.default_directory" : download_folder\n... }\n>>> chromeOptions.add_experimental_option("prefs", preferences)\n>>> chromeOptions.add_experimental_option("debuggerAddress", "127.0.0.1:1111")\n>>>\n>>> chromeOptions.to_capabilities()\n{'browserName': 'chrome', 'version': '', 'platform': 'ANY', 'goog:chromeOptions': {'prefs': {'download.default_directory': 'D:\\\\Test'}, 'debuggerAddress': '127.0.0.1:1111', 'extensions': [], 'args': []}}\n>>>\n>>> driver_Chrome = "D:\\\\chromedriver.exe"\n>>> driver_Web = webdriver.Chrome(executable_path=driver_Chrome, chrome_options=chromeOptions)\nTraceback (most recent call last):\n  File "<stdin>", line 1, in <module>\n  File "C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\selenium\\webdriver\\chrome\\webdriver.py", line 76, in __init__\n    RemoteWebDriver.__init__(\n  File "C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\selenium\\webdriver\\remote\\webdriver.py", line 157, in __init__\n    self.start_session(capabilities, browser_profile)\n  File "C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\selenium\\webdriver\\remote\\webdriver.py", line 252, in start_session\n    response = self.execute(Command.NEW_SESSION, parameters)\n  File "C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\selenium\\webdriver\\remote\\webdriver.py", line 321, in execute\n    self.error_handler.check_response(response)\n  File "C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\selenium\\webdriver\\remote\\errorhandler.py", line 242, in check_response\n    raise exception_class(message, screen, stacktrace)\nselenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions\nfrom invalid argument: unrecognized chrome option: prefs\nRun Code Online (Sandbox Code Playgroud)\n\xc2\xa0
\n但是,如果我删除其中任何一行chromeOptions.add_experimental_option,那么它就可以正常工作,这对我来说没有意义:
>>> from selenium import webdriver\n>>>\n>>> chromeOptions = webdriver.ChromeOptions()\n>>>\n>>> download_folder = "D:\\\\Test"\n>>> preferences = {\n... "download.default_directory" : download_folder\n... }\n>>> chromeOptions.add_experimental_option("prefs", preferences)\n>>> # chromeOptions.add_experimental_option("debuggerAddress", "127.0.0.1:1111")\n>>>\n>>> chromeOptions.to_capabilities()\n{'browserName': 'chrome', 'version': '', 'platform': 'ANY', 'goog:chromeOptions': {'prefs': {'download.default_directory': 'D:\\\\Test'}, 'extensions': [], 'args': []}}\n>>>\n>>> driver_Chrome = "D:\\\\chromedriver.exe"\n>>> driver_Web = webdriver.Chrome(executable_path=driver_Chrome, chrome_options=chromeOptions)\n<stdin>:1: DeprecationWarning: use options instead of chrome_options\n\nDevTools listening on ws://127.0.0.1:4523/devtools/browser/e34332d4-50f0-4419-b9fb-37ede5f5602e\n>>>\nRun Code Online (Sandbox Code Playgroud)\n>>> from selenium import webdriver\n>>>\n>>> chromeOptions = webdriver.ChromeOptions()\n>>>\n>>> download_folder = "D:\\\\Test"\n>>> preferences = {\n... "download.default_directory" : download_folder\n... }\n>>> # chromeOptions.add_experimental_option("prefs", preferences)\n>>> chromeOptions.add_experimental_option("debuggerAddress", "127.0.0.1:1111")\n>>>\n>>> chromeOptions.to_capabilities()\n{'browserName': 'chrome', 'version': '', 'platform': 'ANY', 'goog:chromeOptions': {'debuggerAddress': '127.0.0.1:1111', 'extensions': [], 'args': []}}\n>>>\n>>> driver_Chrome = "D:\\\\chromedriver.exe"\n>>> driver_Web = webdriver.Chrome(executable_path=driver_Chrome, options=chromeOptions)\n>>>\nRun Code Online (Sandbox Code Playgroud)\n\xc2\xa0
\n我已经扩展了每个输出的“功能”,它们对我来说似乎很好:
\n{\n    'browserName': 'chrome',\n    'version': '',\n    'platform': 'ANY',\n    'goog:chromeOptions': {\n        'prefs': {\n            'download.default_directory': 'D:\\\\Test'\n        },\n        'debuggerAddress': '127.0.0.1:1111',\n        'extensions': [],\n        'args': []\n    }\n}\nRun Code Online (Sandbox Code Playgroud)\n{\n    'browserName': 'chrome',\n    'version': '',\n    'platform': 'ANY',\n    'goog:chromeOptions': {\n        'prefs': {\n            'download.default_directory': 'D:\\\\Test'\n        },\n        'extensions': [],\n        'args': []\n    }\n}\nRun Code Online (Sandbox Code Playgroud)\n\xc2\xa0
\n我的环境如下:
\n--remote-debugging-port=1111我在网上找到的任何内容都没有帮助或解决了这个特定的情况。
\n\xc2\xa0
\n2020/09/07 23:26 更新:版本 85.0.4183.* 存在同样的问题。
\n小智 1
也许您无法同时设置 debuggerAddress 和 download.default_directory,因为您不允许在正在运行的 chrome 实例上更改下载目录。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           21249 次  |  
        
|   最近记录:  |