Невозможно передать параметр FirefoxProfile В веб-драйвере использовать настройки для загрузки файла

public class download {
    public static WebDriver driver;

    public static void main(String[] args) throws InterruptedException {

        System.setProperty("webdriver.gecko.driver", "/home/ranjith/Downloads/geckodriver");
        //driver = new FirefoxDriver();

        FirefoxProfile profile = new FirefoxProfile();

        profile.setPreference("browser.download.dir", "/home/ranjith/Downloads");
        profile.setPreference("browser.download.folderList", 2);

        profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");        
        profile.setPreference( "browser.download.manager.showWhenStarting", false );
        profile.setPreference( "pdfjs.disabled", true );

        driver = new FirefoxDriver(profile); 

        driver.get("http://toolsqa.com/automation-practice-form/");
        driver.findElement(By.linkText("Test File to Download")).click();

        Thread.sleep(5000);

        //driver.close();
    }
}

попросив удалить профиль аргумента для соответствия FirefoxDriver в eclipse, вы можете помочь решить эту проблему.

В этой строке выдается ошибка

driver = new FirefoxDriver(profile); 

1 ответ

Решение

Если вы посмотрите на текущий Selenium JavaDoc из FirefoxDriver Учебный класс, FirefoxDriver(profile); метод больше не поддерживается как действительный Constructor,

Вместо этого рекомендуется использовать FirefoxOptions Класс который расширяется MutableCapabilities т.е. org.openqa.selenium.MutableCapabilities

Так как вы создаете новый FirefoxProfile на каждом исполнении через driver = new FirefoxDriver(profile);, вы должны использовать setProfile метод из FirefoxOptions Класс, который определяется как:

public FirefoxOptions setProfile(FirefoxProfile profile)

Ваш блок кода будет:

System.setProperty("webdriver.gecko.driver", "/home/ranjith/Downloads/geckodriver");
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", "/home/ranjith/Downloads");
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");        
profile.setPreference( "browser.download.manager.showWhenStarting", false );
profile.setPreference( "pdfjs.disabled", true );
FirefoxOptions opt = new FirefoxOptions();
opt.setProfile(profile);
driver = new FirefoxDriver(opt);    
Другие вопросы по тегам