Проверить и открыть скачанный файл в Selenium? - PullRequest
0 голосов
/ 26 сентября 2019

Я должен проверить загруженный PDF и открыть его, используя Selenium .Для этого я использую Робот класс.Это не является постоянным или мы можем сказать общее решение этого.

Вопрос: Может ли кто-нибудь помочь и предоставить более надежное решение для того же?

Пожалуйста, найдите ниже код:

public boolean CommonEvents(WebDriver driver) throws InterruptedException { 

    try {   

        Thread.sleep(2000);     
        Robot robot = new Robot();
        robot.mouseMove(100, 700);
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK);

        Thread.sleep(10000);

    } catch(Exception e) {

         BaseTest.reportPass(driver, null, "Should click on PDF to open", "Failed to click on PDF to open");
    }
}

Ответы [ 3 ]

0 голосов
/ 26 сентября 2019

Вы можете использовать что-то похожее на это, если у вас есть фиксированный каталог, в котором вы сохраняете загруженные файлы PDF.

public static void main(String[] args) {

  try {

    File pdfFile = new File("c:\\Hello.pdf");
    if (pdfFile.exists()) {

        if (Desktop.isDesktopSupported()) {
            Desktop.getDesktop().open(pdfFile);
        } else {
            System.out.println("Awt Desktop is not supported.");
        }

    } else {
        System.out.println("File doesn't exists.");
    }

    System.out.println("File opened.");

  } catch (Exception ex) {
    ex.printStackTrace();
  }

}

Ссылка: https://docs.oracle.com/javase/6/docs/api/java/awt/Desktop.html

0 голосов
/ 27 сентября 2019

Мы используем следующую логику:

  1. Сначала задайте предпочтения для местоположения загрузки, чтобы файл был загружен в желаемое местоположение.

    chromePrefs.put ("download.default_directory", downloadFilepath);

  2. Установить предпочтение, чтобы оно не запрашивало всплывающее окно для загрузки.

    chromePrefs.put ("profile.default_content_settings.popups ", 0);

  3. Поскольку @Mudit_ ответил, проверьте наличие * .pdf с шаблоном регулярных выражений, если вы хотите сделать его динамичным.

0 голосов
/ 26 сентября 2019

На всякий случай, если вам действительно нужно открыть каждый загруженный PDF, тогда я просто добавлю эту строку в ваши настройки (например, для Firefox):

ffprofile.setPreference("browser.helperApps.neverAsk.openFile", "application/pdf");

Затем он автоматически откроет загруженный файл после завершенияскачать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...