【问题标题】:Setting a particular chrome driver setting/option设置特定的 chrome 驱动程序设置/选项
【发布时间】:2014-10-03 18:57:18
【问题描述】:
我需要通过selenium取消选中“在下载前询问每个文件的保存位置”Chrome 设置:
我什至不知道从哪里开始,因为documentation page 不包含所有可用选项的列表。而且,我还没有在chrome://flags/ 中找到合适的设置。
据我了解,我需要实例化Chrome Options 或Desired Capabilities,设置特定的选项/功能并将Chrome Options 或Desired Capabilities 实例传递给ChromeDriver 构造函数。
请注意,对于 Firefox,情况有所不同,有一个 about:config 页面,您可以在其中轻松找到设置并通过 Firefox Profile 进行设置。很简单。
我正在使用python绑定,但这不是必需的,问题或多或少是通用的。
【问题讨论】:
标签:
google-chrome
firefox
selenium
selenium-webdriver
chrome-options
【解决方案1】:
通过检查这个特定 Chrome 设置的 元素源 解决了这个问题:
检查的 HTML:
<div class="checkbox">
<span class="controlled-setting-with-label">
<input id="prompt-for-download" type="checkbox" pref="download.prompt_for_download" metric="Options_AskForSaveLocation">
<span>
<label for="prompt-for-download" i18n-content="downloadLocationAskForSaveLocation">Ask where to save each file before downloading</label>
<span class="bubble-button controlled-setting-indicator" pref="download.prompt_for_download">
<div tabindex="0" role="button"></div></span>
</span>
</span>
</div>
如您所见,input 元素具有pref="download.prompt_for_download" 属性。尤里卡!
现在我们可以设置选项,例如使用 Python:
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {'download.prompt_for_download': False}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get('http://stackoverflow.com')