如何使用 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_capabilities 和 options.to_capabilities() 都是字典。您可以使用 dict.update() 方法将 options 添加到主集。
【讨论】:
以上是关于如何使用 Python 将选项传递给 Selenium Chrome 驱动程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 npm babel 和 commandjs 将选项传递给脚本 [重复]
如何将 withCredentials 选项传递给 Request?