当前位置: 首页 > 知识库问答 >
问题:

更改Edge chromium上的默认下载位置

黄君博
2023-03-14

我想问一下,是否有人试图使用selenium 3.X更改微软Edge Chromium驱动程序的默认下载位置。在Chrome浏览器上,我们可以使用类似这样的内容

 HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("download.default_directory", savePAth);
    chromePrefs.put("prompt_for_download", false);
    options.setExperimentalOption("prefs", chromePrefs);

信息:Microsoft Edge浏览器版本:80.0.361.66(官方版本)(64位)

预先感谢

共有1个答案

壤驷喜
2023-03-14

尝试使用以下设置(Java绑定):

public WebDriver newDriver() {

    try {

        EnvironmentVariables vars = SystemEnvironmentVariables.createEnvironmentVariables();

        String version = vars.getProperty("webdriver.edgedriver.version");
        WebDriverManager.edgedriver().version(version).setup();

        EdgeOptions options = new EdgeOptions();

        EdgeDriverService edgeDriverService = EdgeDriverService.createDefaultService();

        EdgeDriver edgeDriver = new EdgeDriver(edgeDriverService, options);

        final String downloadPath = ${your path}

        //************* Enable downloading files / set path *******************
        Map<String, Object> commandParams = new HashMap<>();
        commandParams.put("cmd", "Page.setDownloadBehavior");
        Map<String, String> params = new HashMap<>();
        params.put("behavior", "allow");
        params.put("downloadPath", downloadPath);
        commandParams.put("params", params);
        ObjectMapper objectMapper = new ObjectMapper();
        HttpClient httpClient = HttpClientBuilder.create().build();
        String command = objectMapper.writeValueAsString(commandParams);
        String u = edgeDriverService.getUrl().toString() + "/session/" + edgeDriver.getSessionId() + "/chromium/send_command";
        HttpPost request = new HttpPost(u);
        request.addHeader("content-type", "application/json");
        request.setEntity(new StringEntity(command));
        httpClient.execute(request);

        return edgeDriver;

    } catch (Exception e) {
        throw new Error(e);
    }
}

我能够使用此代码段将文件下载到所需的路径。来源在这里

 类似资料:
  • 我试图改变chrome首选项使用下面的代码,但我不能这样做。我需要使用Java/Selenium更改chrome中文件的下载位置。我尝试了2-3个代码片段如下所述,但没有一个对我有效。

  • 问题内容: 我正在尝试使用pip安装Pandas,但遇到了一些麻烦。我刚运行成功下载了熊猫。但是,它没有下载到我想要的位置。这是我使用时看到的内容: 这样就安装好了。但是当我创建一个新的Python项目并在下面搜索熊猫时,我感到很困惑,因为它没有出现。但是,我过去下载的其他一些软件包的确出现了,所以我尝试看看它们在哪里。运行(我可以毫无问题地导入)产生: 这是在完全不同的目录中。为了确认我的错误,

  • 我正在尝试使用pip安装Pandas,但遇到了一些问题。我刚刚运行了,成功下载了pandas。但是,它没有下载到我想要的位置。以下是我使用时看到的内容: 所以它被安装了。但是当我创建一个新的Python项目并在System Libs/lib/python下搜索熊猫时,我感到困惑,因为它没有显示出来。然而,我过去下载的其他一些包确实出现了,所以我试着看看它们在哪里。运行(我可以毫无问题地导入)生成:

  • 问题内容: 当我运行docker时,下载的docker映像(似乎是)存储在某个地方。 由于该目录上的磁盘空间有限,因此我要同时将docker设置到多台机器上;有没有办法将此默认位置更改为ie ? 问题答案: 您可以使用option和您选择的目录来启动Docker守护程序。这将为Docker设置适当的运行时。 对于1.8版,应该是这样的: 对于早期版本,它将是: 从手册页:

  • 问题内容: 我有一个使用ui.router包进行URL路由的Angular应用程序。我想更改它,以便如果用户尝试导航到他们已经在的页面,则路由器会重新加载该状态,而不是什么也不做。对于每个http://angular- ui.github.io/ui-router/site/#/api/ui.router.state。$ state#go,$ state.go 确实 采用了一个重载参数来实现此目的

  • 我开始学gradle了。然而,当我与格拉德尔一起打造Spring;它将依赖项jar下载到 有没有办法指定Gradle将依赖项jar下载到特定位置?就像我可以在Maven中指定存储库位置一样。 系统信息:Windows 7 64位Gradle 1.0版