Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置Chrome';下载带有Chromedriver(Python)的首选项_Python_Google Chrome_Selenium_Selenium Chromedriver - Fatal编程技术网

设置Chrome';下载带有Chromedriver(Python)的首选项

设置Chrome';下载带有Chromedriver(Python)的首选项,python,google-chrome,selenium,selenium-chromedriver,Python,Google Chrome,Selenium,Selenium Chromedriver,Python 2.7.3 硒3.8.1 铬驱动2.35 Windows 10 我试图从一个网站下载几个不同的文件,但它们有相同的文件名。我想设置“下载。为下载提示”:True,以便在文件下载对话框打开时以编程方式键入每个文件名。 但它不起作用(甚至连download.default_目录也不起作用),它会自动下载文件,而不打开文件下载对话框,也不会保存在我设置的文件夹中。我读过一篇类似的文章,但没用 from selenium import webdriver from selenium.web

Python 2.7.3
硒3.8.1
铬驱动2.35
Windows 10
我试图从一个网站下载几个不同的文件,但它们有相同的文件名。我想设置“下载。为下载提示”:True,以便在文件下载对话框打开时以编程方式键入每个文件名。 但它不起作用(甚至连download.default_目录也不起作用),它会自动下载文件,而不打开文件下载对话框,也不会保存在我设置的文件夹中。我读过一篇类似的文章,但没用

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
from selenium.webdriver.chrome.options import Options

import unittest, time, re
class Lalala(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.base_url = "http://servicos.dnit.gov.br/dadospnct/ContagemContinua"
        self.verificationErrors = []
        self.accept_next_alert = True
    def test_lalala(self):

    options = Options()
    options.add_experimental_option("prefs", {
      "download.default_directory": r"C:\\Users\rafael.kobayashi\Desktop\Vh\BR101\\",
      "download.prompt_for_download": True,
      "download.directory_upgrade": True,
      "safebrowsing.enabled": True
    })
    driver = self.driver
    driver.get("http://servicos.dnit.gov.br/dadospnct/ContagemContinua")

必须输入文件名的提示来自系统,而不是浏览器,因此Selenium无法控制它。您需要使用类似AutoIT的功能


您没有显示用于下载的代码,但我建议您设置“download.prompt\u for\u download”:False。具有相同名称的文件应在下载时多次出现,但带有一个表示数字的后缀(与手动下载且不更改名称的情况相同)。如果没有发生这种情况,您可以编写代码,以便在每次下载时将下载的文件移动到您选择的名称。

我通过进行以下修改解决了此问题:

def setUp(self):
    options = Options()
    options.add_experimental_option("prefs", {
      "download.default_directory": r"C:\\Users\rafael.kobayashi\Desktop\Vh\BR101",
      "download.prompt_for_download": True,
      "download.directory_upgrade": True,
      "safebrowsing.enabled": True
    })
    self.driver = webdriver.Chrome(options=options)
    self.driver.implicitly_wait(30)
    self.base_url = "http://servicos.dnit.gov.br/dadospnct/ContagemContinua"
    self.verificationErrors = []
    self.accept_next_alert = True  

我已经试过了,但是有300多个同名文件(一年中的每一天)。问题是Chrome在保存文件时有100个文件自动重命名限制。在filename(100).jpg之后,下一个文件的名称将恢复为filename.jpg,而不是继续序列(即“filename(101).jpg”)。然后我的最后一个建议应该有效…编写代码,以便每次下载时都能将文件从下载文件夹中拉出,或重命名它。