我使用的是selenium python和chrome驱动程序,想知道是否有任何方法可以获得启用或禁用add_arguments((函数中选项的命令。例如,有"--disable infobars"等,但如果我遇到一个新的设置,我该如何找到合适的命令?一个例子是自动下载pdf的设置。感谢您的帮助。
Chromium有很多命令开关,例如--disable-extensions
或--disable-popup-blocking
,可以在运行时使用Options().add_argument()
启用
以下是一些Chromium命令行开关的列表。
Chromium还允许其他运行时启用的功能,如useAutomationExtension
或plugins.always_open_pdf_externally.
。这些功能是使用DesiredCapabilities.
启用的
当我需要找到用DesiredCapabilities.
控制的其他功能时,我通常会查看Chromium的源代码
下面的代码使用命令开关和启用运行时的功能自动将PDF文件保存到磁盘,而无需提示。
我从美国国会图书馆下载了一份PDF文件作为答案。
如果您有任何与此代码有关的问题或其他与您的问题有关的问题,请告诉我。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
chrome_options = Options()
chrome_options.add_argument('--disable-infobars')
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--disable-popup-blocking')
# disable the banner "Chrome is being controlled by automated test software"
chrome_options.add_experimental_option("useAutomationExtension", False)
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])
# you can set the path for your download_directory
prefs = {
'download.default_directory': 'download_directory',
'download.prompt_for_download': False,
'plugins.always_open_pdf_externally': True
}
capabilities = DesiredCapabilities().CHROME
chrome_options.add_experimental_option('prefs', prefs)
capabilities.update(chrome_options.to_capabilities())
driver = webdriver.Chrome('/usr/local/bin/chromedriver', options=chrome_options)
url_main = 'https://www.loc.gov/aba/publications/FreeLCC/freelcc.html'
driver.get(url_main)
driver.implicitly_wait(20)
download_pdf_file = driver.find_element_by_xpath('//*[@id="main_body"]/ul[2]/li[1]/a')
download_pdf_file.click()
您可以通过以下方式使用Python向chromium网络驱动程序添加选项参数:
options = webdriver.ChromeOptions()
# Arguments go below
options.add_argument("--no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=800,600")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--user-agent={}".format("your user agent string"))
# Etc etc..
options.binary_location = "absolute/path/to/chrome.exe"
driver = webdriver.Chrome(
desired_capabilities=caps,
executable_path="absolute/path/to/chromium-driver.exe",
options=options,
)
在这里,您可以找到chrome支持的所有参数的列表。