Как получить контроль над FirefoxDriver после загрузки файла? - PullRequest
0 голосов
/ 29 сентября 2019

Я использую Selenium 3,141.59.

Мой сценарий таков: я пишу тесты для формы, которая после загрузки возвращает URL-адрес, указывающий на файл PDF, но не напрямую,ответ сервера выглядит следующим образом http://my.web/somefile.php?id=4545, Я не знаю, имеет ли это какое-либо значение.В зависимости от параметров, это открывает PDF-файл в браузере, или открывается диалоговое окно загрузки, в последнем случае браузер становится пустым.Мой код написан для этого последнего сценария, я загружаю файл автоматически, без диалога загрузки.Все работает нормально, но после загрузки формы и загрузки файла мой объект FirefoxDriver перестает работать полностью, даже методы close () и quit ().

        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("browser.download.dir", dirPath);
        profile.setPreference("browser.download.folderList", 2);
        profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf;");
        profile.setPreference("browser.download.manager.showWhenStarting", false);
        profile.setPreference("pdfjs.disabled", true);

        FirefoxOptions fo = new FirefoxOptions();
        //fo.setHeadless(true);
        fo.setProfile(profile);

        FirefoxDriver driver = new FirefoxDriver(fo);
        driver.get("http://miweb.com/form");
        driver.findElement(By.id("input_search")).sendKeys("465464");
        driver.findElement(By.id("submit_btn")).click();

//after this the driver object does not work
//Even the execution "stops". The next line of code does not run until I manually close the browser.
        System.out.println("test");

        driver.quit();
...