我一直在使用一个简单的Python2.7脚本,该脚本将Selenium与Chromedriver一起打开浏览器并下载一些文件。最近,我收到一个错误消息,说我的Chrome是ver时,Chromedriver已过时(Chrome版本必须在70到73之间)。 75.因此,我下载了ChromeDriver 75.0.3770.90,对于我的Chrome版本来说应该可以,但又出现另一个错误,提示“ selenium.common.exceptions.WebDriverException:消息:无效参数:无法识别的功能:chromeOptions”。
我在互联网上发现了一些提示,指出应使用ChromeOptions的方式已更改,但是我无法找到这些更改在Python代码中的外观。对于任何有用的提示或解决方案,我将不胜感激。
def browser(full_url):
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
options = Options()
options.add_experimental_option("prefs", {
"download.default_directory": r"C:\Users\%s\AppData\Local\Temp\\" % getpass.getuser(),
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
options.add_argument("--window-size=640,480")
driver = webdriver.Chrome(chrome_options=options)
try:
driver.get(full_url)
print("\nURL successfully Accessed\n")
time.sleep(9)
finally:
driver.close()
browser(full_url)
我得到的错误:
Traceback (most recent call last):
File "C:\Users\M\Documents\Skrypty\domains.py", line 59, in <module>
browser(full_url)
File "C:\Users\M\Documents\Skrypty\domains.py", line 46, in browser
driver = webdriver.Chrome(chrome_options=options)
File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__
desired_capabilities=desired_capabilities)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 98, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 256, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid argument: unrecognized capability: chromeOptions
答案 0 :(得分:0)
我只是在这里猜测,但我也遇到了这个。我使用了Python 2.7和Selenium 3.4.1。我无法用Python 3.7和Selenium 3.14.0复制该问题。因此,变化可能在于变化的硒中。您应该调查一下。
编辑:是的,我刚刚将Selenium更新至3.14.0,问题消失了。现在,我的驱动程序可以同时使用Python 2.7和3.7