类型错误:WebDriver.__init__() 获得参数“选项”的多个值

Tor*_*Tor 25 python webdriver python-3.x selenium-chromedriver selenium-webdriver

错误是:

TypeError: WebDriver.__init__() got multiple values for argument 'options'
Run Code Online (Sandbox Code Playgroud)

`

代码是:

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

browser = webdriver.Chrome(r'/usr/bin/chromedriver', options=chrome_options)
Run Code Online (Sandbox Code Playgroud)

这是错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-5-9a7e59e392ae> in <cell line: 6>()
      4 chrome_options.add_argument('--headless')
      5 
----> 6 browser = webdriver.Chrome(r'/usr/bin/chromedriver', options=chrome_options)

TypeError: WebDriver.__init__() got multiple values for argument 'options'
Run Code Online (Sandbox Code Playgroud)

Mic*_*ntz 48

这是由于以下更改所致selenium 4.10.0https://github.com/SeleniumHQ/selenium/commit/9f5801c82fb3be3d5850707c46c3f8176e3ccd8e

Changes_in_selenium_4_10_0

请注意,第一个参数不再是executable_path,而是options。(这就是为什么它抱怨你将其传递了两次。)

如果你想传递一个executable_path,你现在必须使用servicearg 。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service(executable_path=r'/usr/bin/chromedriver')
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(service=service, options=options)
# ...
driver.quit()
Run Code Online (Sandbox Code Playgroud)

  • @ViniCoder 使用 `options.set_capability(name, value)` 而不是 `desired_capability`。 (2认同)