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

无法在使用Selenium WebDriver没有任何窗口弹出的情况下将chrome(59最新)文件下载到特定目录

唐弘和
2023-03-14

我需要在chrome浏览器(59最新版本)中下载一个文件到specfic目录,而没有窗口弹出窗口显示。使用下面的代码,它显示窗口弹出。如果我不使用此文件将被下载到下载文件夹不显示任何窗口弹出窗口。我见过很多人面临类似的问题,但这段代码对他们来说很有效。最新的Chrome有什么问题吗?

        String downloadFilepath = TestConstants.FILE_PATH;
        HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
        chromePrefs.put("profile.default_content_settings.popups", 0);
        chromePrefs.put("download.prompt_for_download", "false");
        chromePrefs.put("download.default_directory", downloadFilepath);
        ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption("prefs", chromePrefs);

        DesiredCapabilities cap = DesiredCapabilities.chrome();
        cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        cap.setCapability(ChromeOptions.CAPABILITY, options);

        driver = new ChromeDriver(cap);

共有1个答案

西门洛城
2023-03-14

在使用Selenium 3.4.0、ChromeDriver 2.30和Chrome 59.0测试该功能时,我尝试使用您自己的代码从urlhttps://www.microsoft.com/en-in/download/details.aspx?id=45485下载excel文件,并进行了一些简单的调整。代码块在我这边工作得很好。

System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
String downloadFilepath = "C:\\Utility\\OP_Resources\\ChromeDownload";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.prompt_for_download", "false");
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);
driver.get("https://www.microsoft.com/en-in/download/details.aspx?id=45485");
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,200)", "");
driver.findElement(By.linkText("Download")).click();
 类似资料: