Как определить процесс загрузки в Chrome, используя селен Java? - PullRequest
0 голосов
/ 20 сентября 2018

Как определить, что загрузка не завершена / не выполняется?потому что я хочу закрыть веб-драйвер после завершения загрузки.

WebDriver: Chrome

пример кода, например, предположим, что установка драйвера хрома готова.

@Test
public void testDownloadPdf(){
// here is the selenium java code to download pdf.
// when do i perform driver.close();
}

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Я нашел это ... это работает в моем случае здесь, я использую FileUtils.sizeOfDirectory(downloadfolder), он будет возвращать размер каталога и будет проверять каждые 5 секунд, равен ли размер или нет. Если размер файла равен, то скачатьзавершено.

private void waitForDownloadFinished() throws Exception {
            try {
                String path = "/Download/path/";
                if (path != null) {
                    File folder = new File(path);
                    long size, reSize;
                    do {
                        size = FileUtils.sizeOfDirectory(folder);
                        Thread.sleep(5000);
                        reSize = FileUtils.sizeOfDirectory(folder);
                    } while (size != reSize);
                    System.out.println("Download completed");
                }           
} catch (Exception e) {
                e.printStackTrace();
                throw e;
            } finally {
                getWebBrowser().quit();
            }
        }
0 голосов
/ 20 сентября 2018

В общем, лучше закрыть драйвер в @AfterClass.Если вы знаете точное имя файла и ожидаемое местоположение, вы можете использовать Paths

String file_path_full = "C:\\users\\username\\downloads\\yourpdffile.pdf";
while(Files.notExists(Paths.get(file_path_full))) {Thread.sleep(10000);}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...