There is a method using 'SendKeys' which can upload files. In selenium, files can be easily uploaded using sendkeys. For this to work, make sure that the input element is visible.

- This is precisely how it should look for it to work flawlessly.
- Within the sendkeys, the absolute path to the file has to be mentioned.
For demo, files will be uploaded on this practice site.
Import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import io.GitHub.bonigarcia.wdm.WebDriverManager;
public class FileUpload {
public static void main(String[] args) {
WebDriverManager.chromedriver().setup();
ChromeDriver driver = new ChromeDriver();
driver.get("http://autopract.com/selenium/upload1/");
driver.manage().window().maximize();
WebElement uploadButton = driver.findElement(By.xpath("//input[@name=\"files[]\"]"));
uploadButton.sendKeys("C:/Users/arili/git/Assignments/Selenium/target/N.png");
WebElement startButton = driver.findElement(
By.xpath("//tr[@class=\"template-upload fade image in\"]//button[@class=\"btn btn-primary start\"]"));
startButton.click();
}
}

- N.png is successfully uploaded using the sendkeys method in selenium.
- Note that the browse button should not be clicked for this to work; instead, after locating the browse element doing senkeys on it with the path will upload the file.