如何使用 Python 将选项传递给 Selenium Chrome 驱动程序?

Posted

技术标签:

【中文标题】如何使用 Python 将选项传递给 Selenium Chrome 驱动程序?【英文标题】:How do I pass options to the Selenium Chrome driver using Python? 【发布时间】:2012-09-23 19:28:27 【问题描述】:

Selenium documentation 提到 Chrome 网络驱动程序可以采用 ChromeOptions 的实例,但我不知道如何创建 ChromeOptions

我希望将 --disable-extensions 标志传递给 Chrome。

【问题讨论】:

【参考方案1】:

找到chrome Options class in the Selenium source code。

用于创建Chrome驱动实例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=chrome_options)

【讨论】:

这个答案是救命稻草。如果对其他人有用,启用 ES6 Harmony 功能,请致电chrome_options.add_argument("--js-flags=--harmony") 注意:chrome_options arg 现在已弃用,取而代之的是更简单的 options,例如:driver = webdriver.Chrome(options=chrome_options) 嘿,@k107 我想知道我是否可以做同样的事情,除了一个改变。我可以使用chrome_options.add_argument("--enable-extensions") 来启用所有扩展,而不是通过(代码)手动添加每个扩展吗?提前致谢!【参考方案2】:

我就是这样做的。

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-extensions')

chrome = webdriver.Chrome(chrome_options=chrome_options)

【讨论】:

【参考方案3】:

为那些使用 DesiredCapabilities 设置浏览器标志的人禁用 chrome 扩展的代码:

desired_capabilities['chromeOptions'] = 
    "args": ["--disable-extensions"],
    "extensions": []

webdriver.Chrome(desired_capabilities=desired_capabilities)

【讨论】:

【参考方案4】:
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--disable-logging')

# Update your desired_capabilities dict withe extra options.
desired_capabilities.update(options.to_capabilities())
driver = webdriver.Remote(desired_capabilities=options.to_capabilities())

desired_capabilitiesoptions.to_capabilities() 都是字典。您可以使用 dict.update() 方法将 options 添加到主集。

【讨论】:

以上是关于如何使用 Python 将选项传递给 Selenium Chrome 驱动程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用选项卡导航器将道具传递给 Screen 组件?

如何使用 npm babel 和 commandjs 将选项传递给脚本 [重复]

如何将 withCredentials 选项传递给 Request?

如何通过 Maven 将“-J”选项传递给 javac?

CarbonKit:如何将选项卡数组标题 ID 传递给 UIViewController?

如何使用 JS API 将配置选项传递给 Auth0 托管页面?