提问者:小点点

如何在Chrome中控制SeleniumPython绑定文件的下载


我在哪里可以找到描述我可以使用Selenium和ChromeWeb浏览器的选项的留档?我想在Web浏览器中打开一个链接(以获取凭据),但不是下载相应的文件(. pdf或.tiff或.jpeg)。我在Windows 7笔记本电脑上使用Python2.7、selenium 3.0.1和Chrome版本54.0.2840.99(和chromedriver.exe)。

# Chrome web browser.
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')  
#options.add_argument('--disable-download-notification') #doesn't seems to work 
#options.add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"}) # doesn't work
#options.add_experimental_option("prefs", {"download.prompt_for_download": False}) # doesn't seems to work
#options.add_experimental_option("prefs", {'profile.default_content_settings': {'images': 2}})# this will disable image loading in the browser
options.add_argument("user-agent="+user_agent_profile)
driver_main = webdriver.Chrome(chrome_options=options)

# Opening the web application portail.
driver_main.get("https://my_link")

我发现了许多关于这个主题的讨论,但没有一个解决方案有效。例如:

add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"})

对我不起作用。

相同的:

add_experimental_option("prefs", {"download.prompt_for_download": False})

(我也用“假”试试)。

同时:

add_argument("user-agent="+user_agent_profile)

似乎工作!

我不确定明白什么是错的

我得到的问题是,它开始下载文件每次我打开一个链接与名称文件(1)文件(2)……文件(99)然后从100开始打开一个弹出窗口另存为。所以我想要么根本不下载文件,要么能够将其移动到回收站中的特定文件夹中。

如何找到哪些选项可以与add_argument和add_argument一起使用?我试图查看Chrome://about/,但看不到直接对应关系。

多谢了。

干杯。

费边。


共2个答案

匿名用户

您为默认目录声明的路径无效。要么转义后斜杠,要么提供文字字符串。

options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", {
  "download.default_directory": r"C:\Users\xxx\downloads\Test",
  "download.prompt_for_download": False,
  "download.directory_upgrade": True,
  "safebrowsing.enabled": True
})
driver = webdriver.Chrome(chrome_options=options)

以下是可用的首选项:

https://cs.chromium.org/chromium/src/chrome/common/pref_names.cc

匿名用户

在指定要下载内容的目录时,使用正斜杠“/”会有很大的不同。

我猜这是因为该目录将导出到Powershell之类的东西,其中通常的反斜杠“\”无法正常工作。