1) Используя sendkeys, мы можем отправить путь к файлу: -
Это самая основная техника для загрузки файла. Получите элемент загрузки файла, используя Id или Name. И вызовите метод sendKeys () Webdriver, чтобы установить значение файла для загрузки.
Помните о двух следующих вещах при загрузке файлов в WebDriver
1) Нет необходимости имитировать нажатие кнопки «Обзор». WebDriver автоматически вводит путь к файлу в текстовое поле выбора файла элемента <input type="file">
.
2) При настройке пути к файлу в вашей среде Java IDE используйте правильный символ перехода для обратной косой черты.
Попробуйте это: -
WebDriver driver = new FirefoxDriver();
// Put an Implicit wait,
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Launch the URL
driver.get("http://toolsqa.com/automation-practice-form");
WebElement element = driver.findElement(By.id("photo"));
element.sendKeys("/home/savera9/Desktop/test.jpg");
Есть и другие способы загрузки файлов, пожалуйста, отметьте this
2) Использование класса робота : -
driver.findElement(By.xpath("Path of that element")).click();
StringSelection strSel = new StringSelection("upload file path");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(strSel, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
Thread.sleep(3000);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
3) Использование AutoIT: -
AutoIT помогает загружать файлы, передавая управление из веб-драйвера Selenium в AutoIT. Нам нужно явно вызвать скрипт AutoIT из нашей программы. После нажатия кнопки загрузки фокус будет перемещен в AutoIT, и он выполнит операторы, которые будут использоваться для загрузки файлов.
4) Использование Sikuli: -
Sikuli - инструмент автоматизации графического интерфейса пользователя с открытым исходным кодом. Sikuli будет использоваться для автоматизации всего, что вы можете увидеть на экране. Он использует распознавание изображений, чтобы говорить с элементами GUI. Когда нет легкого доступа к исходному коду графического интерфейса, это один из лучших способов получить соответствующий ответ.
Есть и другие способы загрузки файла, перейдите по этой ссылке https://www.evoketechnologies.com/blog/selenium-automation-uploading-multiple-files-via-web-browsers-file-dialog/