【问题标题】:How to set default download directory in eclipse project to download .pdf file?如何在eclipse项目中设置默认下载目录以下载.pdf文件?
【发布时间】:2021-03-31 12:28:08
【问题描述】:

我必须将生成的pdf文件下载到自定义目录,但浏览器没有将文件下载到特定路径。在我的通用方法下面:

    public void downloadFile() throws InterruptedException, IOException {
        String path = "./FILES";
        folder = new File(path);
        folder.mkdir();
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("download.default_directory",
                System.getProperty("user.dir") + File.separator + "externalFiles" + File.separator + "downloadFiles");
        ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption("prefs", prefs);
        options.addArguments("start-maximized");
        System.setProperty("webdriver.chrome.driver", folder.getAbsolutePath());
        driver = new ChromeDriver(options);
        Thread.sleep(3000);
        driver.findElement(By.xpath("//button[@title='Generate PDF Report']")).click();
        
    }

【问题讨论】:

  • 它不是重复的,因为它没有回答我的问题。
  • 它是逐字逐句的 - 所以如果它没有回答您的问题,您需要澄清您的问题以说明确切是什么你需要做什么,什么不起作用,你遇到了什么错误。
  • 不幸的是我看不到错误,但问题是 Hello.pdf 文件下载到我的 /home/tifoso/Downloads 目录而不是所需的目录 .//FILES//
  • 您已经创建了ChromeOptions 的实例,但没有使用它来初始化WebDriver

标签: java selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

我发现了自己的错误。如果您比较新鲜,请不要尝试将其用作通用方法。这将是您的设置方法。

应该是这样的:

@BeforeTest
public void setup() {
    basePage = new BasePage(); 
    prop = basePage.init_properties();
    
    Map<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("download.default_directory",System.getProperty("user.dir") + File.separator + "externalFiles" + File.separator + "downloadFiles");   
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs", prefs);
    WebDriverManager.chromedriver().setup();

    driver = new ChromeDriver(options);
    driver.get("https://your.url.com");
    CS = new Best_Services(driver);
}

@Test(priority = 20)
public void verify_ClickOnUpdateSMITH_test() throws InterruptedException, IOException {
    CS.clickOnPDF();            
}

@Test(priority = 22)
public void verify_readPDF_SearchByCriteriaSMITH_test() throws IOException, InterruptedException  {
    CS.readPDF_SearchByCriteria();       
}

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2016-04-03
    • 2018-07-26
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多