首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >铬/铬无头文件下载不工作?

铬/铬无头文件下载不工作?
EN

Stack Overflow用户
提问于 2017-02-26 16:35:59
回答 7查看 23K关注 0票数 19

我下载了最新版本的铬,以测试无头功能。

当我运行时(作为root用户,因为我仍然在测试事物):

代码语言:javascript
复制
./chrome --no-sandbox http://cp7.awardspace.com/speed-test/awardspace-data1mb.zip

在GUI终端中,它打开Chromium并下载文件。

如果我试图无头运行它,我输入以下内容:

代码语言:javascript
复制
./chrome --no-sandbox --headless http://cp7.awardspace.com/speed-test/awardspace-data1mb.zip

终端输出一些信息,没有窗口打开,但也:我没有下载任何地方的文件。

我一直在互联网和讨论小组寻找更多的信息,但什么也找不到。

是文件下载不工作在无头模式下铬?

EN

回答 7

Stack Overflow用户

发布于 2017-03-03 15:54:34

这是无头实现中的一个报告错误:https://bugs.chromium.org/p/chromium/issues/detail?id=696481

票数 13
EN

Stack Overflow用户

发布于 2018-11-28 16:55:50

使用ChromeDriverService和后置会话/{sessionId}/ Use /send_命令

JSON担任职务:

代码语言:javascript
复制
{
    "cmd": "Page.setDownloadBehavior",
    "params": {
        "behavior": "allow",
        "downloadPath": "C:\\Download\\Path"
    }
}

C#解决方案

添加对System.Net.Http的引用,并使用NuGet安装Newtonsoft.JSON。

代码语言:javascript
复制
public static IWebDriver Driver { get; private set; }

public void SetDriver()
{
    var chromeOptions = new ChromeOptions();
    chromeOptions.AddArguments("--headless", "--window-size=1920,1080");

    var driverService = ChromeDriverService.CreateDefaultService();
    Driver = new ChromeDriver(driverService, chromeOptions);

    Task.Run(() => AllowHeadlessDownload(driverService));
}

static async Task AllowHeadlessDownload(ChromeDriverService driverService )
{
    var jsonContent = new JObject(
        new JProperty("cmd", "Page.setDownloadBehavior"),
        new JProperty("params",
        new JObject(new JObject(
            new JProperty("behavior", "allow"),
            new JProperty("downloadPath", @"C:\Download\Path")))));
    var content = new StringContent(jsonContent.ToString(), Encoding.UTF8, "application/json");
    var sessionIdProperty = typeof(ChromeDriver).GetProperty("SessionId");
    var sessionId = sessionIdProperty.GetValue(Driver, null) as SessionId;

    using (var client = new HttpClient())
    {
        client.BaseAddress = driverService.ServiceUrl;
        var result = await client.PostAsync("session/" + sessionId.ToString() + "/chromium/send_command", content);
        var resultContent = await result.Content.ReadAsStringAsync();
    }
}
票数 5
EN

Stack Overflow用户

发布于 2018-03-28 14:05:23

在Java中使用以下代码:

代码语言:javascript
复制
System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
         ChromeOptions options = new ChromeOptions();
                options.addArguments("--test-type");
                options.addArguments("--headless");
                options.addArguments("--disable-extensions"); //to disable browser extension popup

                ChromeDriverService driverService = ChromeDriverService.createDefaultService();
                ChromeDriver driver = new ChromeDriver(driverService, options);

                Map<String, Object> commandParams = new HashMap<>();
                commandParams.put("cmd", "Page.setDownloadBehavior");
                Map<String, String> params = new HashMap<>();
                params.put("behavior", "allow");
                params.put("downloadPath", "//home//vaibhav//Desktop");
                commandParams.put("params", params);
                ObjectMapper objectMapper = new ObjectMapper();
                HttpClient httpClient = HttpClientBuilder.create().build();
                String command = objectMapper.writeValueAsString(commandParams);
                String u = driverService.getUrl().toString() + "/session/" + driver.getSessionId() + "/chromium/send_command";
                HttpPost request = new HttpPost(u);
                request.addHeader("content-type", "application/json");
                request.setEntity(new StringEntity(command));
                httpClient.execute(request);
        driver.get("http://www.seleniumhq.org/download/");
        driver.findElement(By.linkText("32 bit Windows IE")).click();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42471151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档