Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/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
Python 创建webdriver后Selenium firefox配置文件更新下载目录_Python_Selenium - Fatal编程技术网

Python 创建webdriver后Selenium firefox配置文件更新下载目录

Python 创建webdriver后Selenium firefox配置文件更新下载目录,python,selenium,Python,Selenium,我想知道在启动驱动程序后如何更新/更改selenium中的下载位置 在创建概要文件和启动webdriver期间设置下载目录没有问题。该问题在启动webdriver以根据数据类型更改目录后出现 比如说 -如果dl doc是word保存在Docs\word中 -如果dl doc是pdf,则保存在Docs\pdf中 这是我的密码 profile = webdriver.FirefoxProfile() profile.set_preference('browser.download.dir', os.

我想知道在启动驱动程序后如何更新/更改selenium中的下载位置

在创建概要文件和启动webdriver期间设置下载目录没有问题。该问题在启动webdriver以根据数据类型更改目录后出现

比如说 -如果dl doc是word保存在Docs\word中 -如果dl doc是pdf,则保存在Docs\pdf中

这是我的密码

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference("browser.download.folderList", 2)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/download,application/octet-stream,application/pdf')
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)
driver.delete_all_cookies()
sleep(10)
# this part doesn't work
driver.profile.set_preference('browser.download.dir',"{0}\{1}".format(os.getcwd(),"Docs"))
driver.profile.update_preferences()

在Firefox中,一旦上下文设置为
chrome
,就可以在运行时通过scrip注入更改首选项:

def set_download_dir(driver, directory):
  driver.command_executor._commands["SET_CONTEXT"] = ("POST", "/session/$sessionId/moz/context")
  driver.execute("SET_CONTEXT", {"context": "chrome"})

  driver.execute_script("""
    Services.prefs.setBoolPref('browser.download.useDownloadDir', true);
    Services.prefs.setStringPref('browser.download.dir', arguments[0]);
    """, directory)

  driver.execute("SET_CONTEXT", {"context": "content"})

我认为通过硒是不可能的,见这里的讨论[嗯,我将尝试更多的组合,然后我将不得不做一个变通办法。可能是重复的,而不是重复的…在那篇文章中,他不知道如何使用selenium设置下载位置。我正在寻找在启动驱动程序后更改下载目录,该驱动程序已经有另一个dl目录位置。;)我刚刚测试过,它像charm一样工作…你知道吗你知道有没有可能使用脚本注入来更改当前为dl的文件的名称?不可能预设名称。效果很好!谢谢!