Testing File Upload Functionality

Test your web app’s file upload functionality on BrowserStack Automate.

Introduction

This document guides you how to test your web app’s File Upload functionality in Automate by:

  • Using files on your local machine.
  • Using default media files on remote machines.
  • Using files downloaded from the web in the same Automate session.

Supported Browsers and Operating Systems

Component List
Supported OS All desktop OS (not supported on mobile devices)
Supported Browser All (Chrome, Firefox, Safari, IE, Edge)

Uploading files directly from your local machine

You can send a file to remote browsers—directly from your workstation—in Automate, through the LocalFileDetector method.

Usage

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.LocalFileDetector;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class JavaSample {

  public static final String AUTOMATE_USERNAME = "YOUR_USERNAME";
  public static final String AUTOMATE_KEY = "YOUR_ACCESS_KEY";
  public static final String URL = "https://" + AUTOMATE_USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub";

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

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("browser", "internet explorer");
    caps.setCapability("os", "windows");
    caps.setCapability("browser_version", "11.0");
    caps.setCapability("os_version", "10");
    caps.setCapability("browserstack.sendKeys", "true");
    caps.setCapability("browserstack.debug", "true");
    caps.setCapability("name", "Bstack-[Java] Sample Test");

    RemoteWebDriver driver = new RemoteWebDriver(new URL(URL), caps);
    driver.setFileDetector(new LocalFileDetector());
    driver.get("http://www.fileconvoy.com/");
    driver.findElement(By.id("upfile_0")).sendKeys("//local//file//path");
    driver.findElement(By.id("readTermsOfUse")).click();
    driver.findElement(By.name("upload_button")).submit();
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    try {
    	WebDriverWait wait = new WebDriverWait(driver, 5);
    	wait.until(ExpectedConditions.presenceOfElementLocated(By.id("TopMessage")));
    	if(driver.findElementById("TopMessage").getText().contains("successfully uploaded")) {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"File uploaded successfully\"}}");
    	} else {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File upload failed\"}}");
    	}
    }
    catch(Exception e) {
    	jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}");
    }
    driver.quit();
  }
}
const webdriver = require("selenium-webdriver");
const remote = require("selenium-webdriver/remote");

// Input capabilities
const capabilities = {
  "browserName": "Internet Explorer",
  "browser_version": "11.0",
  "os": "Windows",
  "os_version": "10",
  "name": "Bstack-[NodeJS] Upload Test",
  "browserstack.sendKeys": "true",
  "browserstack.debug": "true",
  "browserstack.user": "YOUR_USERNAME",
  "browserstack.key": "YOUR_ACCESS_KEY"
};

const driver = new webdriver.Builder()
  .usingServer("https://hub-cloud.browserstack.com/wd/hub")
  .withCapabilities(capabilities)
  .build();

//This will detect your local file
driver.setFileDetector(new remote.FileDetector());

(async () => {
  await driver.get("http://www.fileconvoy.com");

  const filePathElement = await driver.findElement(webdriver.By.id("upfile_0"));
  await filePathElement.sendKeys("//local//file//path");

  await (await driver.findElement(webdriver.By.id("readTermsOfUse"))).click();
  await (await driver.findElement(webdriver.By.name("upload_button"))).click();
  try {
    await driver.wait(webdriver.until.elementIsVisible((await driver.findElement(webdriver.By.id('TopMessage')))), 5000);
    if((await driver.findElement(webdriver.By.id('TopMessage')).getText()).includes('successfully uploaded')) {
      await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}}');
    } else {
      await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}}');
    }
    } catch (e) {
    await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File could not be uploaded in time"}}');
    }
  await driver.quit();
})();
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest
{
  class Program
  {
    static void Main(string[] args)
    {
      IWebDriver driver;
      OpenQA.Selenium.IE.InternetExplorerOptions capability = new OpenQA.Selenium.IE.InternetExplorerOptions();
      capability.AddAdditionalCapability("browser", "IE", true);
      capability.AddAdditionalCapability("browser_version", "11", true);
      capability.AddAdditionalCapability("os", "Windows", true);
      capability.AddAdditionalCapability("os_version", "10", true);
      capability.AddAdditionalCapability("browserstack.sendKeys", "true", true);
      capability.AddAdditionalCapability("browserstack.debug", "true", true);
      capability.AddAdditionalCapability("browserstack.user", "YOUR_USERNAME", true);
      capability.AddAdditionalCapability("browserstack.key", "YOUR_ACCESS_KEY", true);
      capability.AddAdditionalCapability("name", "Bstack-[C_sharp] Sample Test", true);

      driver = new RemoteWebDriver(
        new Uri("http://hub-cloud.browserstack.com/wd/hub/"), capability
      );
      driver.Navigate().GoToUrl("http://www.fileconvoy.com");
      IWebElement uploadFile = driver.FindElement(By.Id("upfile_0"));
      Console.WriteLine(driver.Title);
      String path = "//path//to//your//local//file";   //File path in your local machine
      LocalFileDetector detector = new LocalFileDetector();
      var allowsDetection = driver as IAllowsFileDetection;
      if (allowsDetection != null)
      {
        allowsDetection.FileDetector = new LocalFileDetector();
      }
      uploadFile.SendKeys(path);
      driver.FindElement(By.Id("readTermsOfUse")).Click();
      driver.FindElement(By.Id("upload_button")).Click();
      driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
      if (driver.FindElement(By.CssSelector("#TopMessage")).Text.Contains("successfully uploaded"))
      {
        ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}");
      }
      else
      {
        ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"File upload failed!\"}}");
      }
      driver.Quit();
    }
  }
}
<?php

  require_once('vendor/autoload.php');
  use Facebook\WebDriver\Remote\RemoteWebDriver;
  use Facebook\WebDriver\WebDriverBy;
  use Facebook\WebDriver\Remote\LocalFileDetector;

  $caps = array(
 "browser" => "Internet Explorer",
 "browser_version" => "11.0",
 "os" => "Windows",
 "os_version" => "10",
 "browserstack.sendKeys" => "true",
 "name" => "Bstack-[Php] Sample Test",
 "browserstack.debug" => "true",
 "pageLoadStrategy" => 'none'
);
  $web_driver = RemoteWebDriver::create(
    "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
    $caps
  );
  $web_driver->get("http://www.fileconvoy.com");
  $file_input = $web_driver->findElement(WebDriverBy::id("upfile_0"));
  $file_input->setFileDetector(new LocalFileDetector());
  $file_input->sendKeys("//local//file//path");

  $web_driver->findElement(WebDriverBy::id("readTermsOfUse"))->click();
  $web_driver->findElement(WebDriverBy::name("upload_button"))->submit();
  sleep(5);
  $web_driver->quit();
?>
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait

desired_cap = {
 'browser': 'Internet Explorer',
 'browser_version': '11.0',
 'os': 'Windows',
 'os_version': '10',
 'browserstack.sendKeys': 'true',
 'browserstack.debug': 'true',
 'name': 'Bstack-[Python] Sample Test'
}

driver = webdriver.Remote(
    command_executor='http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub.browserstack.com/wd/hub',
    desired_capabilities=desired_cap)
driver.get('http://www.fileconvoy.com')
driver.find_element_by_id('upfile_0').send_keys('//local//file//path')
driver.find_element_by_id('readTermsOfUse').click()
driver.find_element_by_name('upload_button').submit()
try:
    WebDriverWait(driver, 5).until(lambda x: x.find_element_by_id('TopMessage'))
    if(driver.find_element_by_id('TopMessage').text == "Your file(s) have been successfully uploaded."):
        # Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page starts with 'BrowserStack'
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}')
    else:
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File upload failed"}}')
except TimeoutException:
    driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in 5 seconds"}}')
driver.quit()
require 'rubygems'
require 'selenium-webdriver'

# Input capabilities
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browser'] = 'Internet Explorer'
caps['browser_version'] = '11.0'
caps['os'] = 'Windows'
caps['os_version'] = '10'
caps['name'] = 'Bstack-[Ruby] Sample Test'
caps['browserstack.sendKeys'] = 'true'
caps['browserstack.debug'] = 'true'
caps["javascriptEnabled"]='true' #Enabling the javascriptEnabled capability to execute javascript in the test script

driver = Selenium::WebDriver.for(:remote,
  :url => "http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
  :desired_capabilities => caps)
driver.file_detector = lambda do |args|
  str = args.first.to_s
  str if File.exist?(str)
end
driver.navigate.to "http://www.fileconvoy.com"
driver.find_element(:id, "upfile_0").send_keys("//local//file//path")
driver.execute_script('document.getElementById("readTermsOfUse").click();')
driver.find_element(:name, "upload_button").submit
sleep(5)
driver.quit
use Selenium::Remote::Driver;

#Input capabilities
my $extraCaps = {
  "browser" => "Internet Explorer",
  "browser_version" => "11.0",
  "os" => "Windows",
  "os_version" => "10",
  "browserstack.sendKeys" => "true",
  "browserstack.debug" => "true",
  "name" => "Bstack-[Perl] Sample Test"
};

my $login = "YOUR_USERNAME";
my $key = "YOUR_ACCESS_KEY";
my $host = "$login:$key\@hub-cloud.browserstack.com";

my $driver = new Selenium::Remote::Driver('remote_server_addr' => $host,
  'port' => '80', 'extra_capabilities' => $extraCaps);
my $remote_fname = $driver->upload_file("//local//file//path");
$driver->get('http://www.fileconvoy.com');
$driver->find_element('upfile_0','id')->send_keys($remote_fname);
$driver->find_element('readTermsOfUse', 'id')->click();
$driver->find_element('upload_button', 'name')->click();
sleep 40;
$driver->quit();
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.LocalFileDetector;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.net.URL;

public class JavaSample {

  public static final String AUTOMATE_USERNAME = "YOUR_USERNAME";
  public static final String AUTOMATE_KEY = "YOUR_ACCESS_KEY";
  public static final String URL = "https://" + AUTOMATE_USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub";

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

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("browser", "chrome");
    caps.setCapability("os", "windows");
    caps.setCapability("browser_version", "latest");
    caps.setCapability("os_version", "10");
    caps.setCapability("name", "Bstack-[Java] Sample Test");

    WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
    driver.setFileDetector(new LocalFileDetector());
    driver.get("http://www.fileconvoy.com/");
    driver.findElement(By.id("upfile_0")).sendKeys("//local//file//path");
    driver.findElement(By.id("readTermsOfUse")).click();
    driver.findElement(By.name("upload_button")).submit();
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    try {
    	WebDriverWait wait = new WebDriverWait(driver, 5);
    	wait.until(ExpectedConditions.presenceOfElementLocated(By.id("TopMessage")));
    	if(driver.findElementById("TopMessage").getText().contains("successfully uploaded")) {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"File uploaded successfully\"}}");
    	} else {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File upload failed\"}}");
    	}
    }
    catch(Exception e) {
    	jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}");
    }
    driver.quit();
  }
}
const webdriver = require('selenium-webdriver');
const fs = require('fs');
const remote = require('selenium-webdriver/remote');

// Input capabilities
const capabilities = {
 'browserName' : 'safari',
 'browser_version' : 'latest',
 'os' : 'OS X',
 'os_version' : 'Big Sur',
 'name': 'Safari test file upload', // test name
 'build': 'File upload testing' // Build name
}
async function runTestWithCaps () {
  let driver = new webdriver.Builder()
    .usingServer('http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub')
    .withCapabilities(capabilities)
    .build();
  //This will detect your local file
  await driver.setFileDetector(new remote.FileDetector);  
  await driver.get('http://www.fileconvoy.com/');
  await driver.findElement(webdriver.By.id('upfile_0')).sendKeys('//path//to//your//local//file');  // Path to teh file in your system needs to be given here
  await driver.findElement(webdriver.By.id('readTermsOfUse')).click();
  await driver.findElement(webdriver.By.id('upload_button')).click();
  await driver.wait(webdriver.until.elementLocated(webdriver.By.id('TopMessage')), 5000);
  if((await driver.findElement(webdriver.By.id('TopMessage')).getText()).includes('successfully uploaded')) {
    await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}}');
  } else {
    await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}}');
  }
  await driver.quit();
}
runTestWithCaps(); 
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest
{
    class Program
    {
        static void Main(string[] args)
        {
            IWebDriver driver;
            OpenQA.Selenium.Chrome.ChromeOptions capability = new OpenQA.Selenium.Chrome.ChromeOptions();
            capability.AddAdditionalCapability("browser", "Chrome", true);
            capability.AddAdditionalCapability("browser_version", "75.0", true);
            capability.AddAdditionalCapability("os", "Windows", true);
            capability.AddAdditionalCapability("os_version", "10", true);
            capability.AddAdditionalCapability("browserstack.user", "YOUR_USERNAME", true);
            capability.AddAdditionalCapability("browserstack.key", "YOUR_ACCESS_KEY", true);
            capability.AddAdditionalCapability("name", "Bstack-[C_sharp] Sample Test", true);

            driver = new RemoteWebDriver(
              new Uri("http://hub-cloud.browserstack.com/wd/hub/"), capability
            );
            driver.Navigate().GoToUrl("http://www.fileconvoy.com");
            IWebElement uploadFile = driver.FindElement(By.Id("upfile_0"));
            Console.WriteLine(driver.Title);
            String path = "path//to//your//local//file";   //File path in your local machine
            uploadFile.SendKeys(path);
            driver.FindElement(By.Id("readTermsOfUse")).Click();
            driver.FindElement(By.Id("upload_button")).Click();
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
            String result = driver.FindElement(By.CssSelector("#TopMessage")).Text;
            if(result.Contains("successfully uploaded"))
            {
                ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}");
            }
            else
            {
                ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"File upload failed!\"}}");
            }
            driver.Quit();
        }
    }
}
<?php

  require_once('vendor/autoload.php');
  use Facebook\WebDriver\Remote\RemoteWebDriver;
  use Facebook\WebDriver\WebDriverBy;
  use Facebook\WebDriver\Remote\LocalFileDetector;

  $caps = array(
 "browser" => "Chrome",
 "browser_version" => "75.0",
 "os" => "Windows",
 "os_version" => "10",
 "name" => "Bstack-[Php] Sample Test"
);
  $web_driver = RemoteWebDriver::create(
    "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
    $caps
  );
  $web_driver->get("http://www.fileconvoy.com");
  $file_input = $web_driver->findElement(WebDriverBy::id("upfile_0"));
  $file_input->setFileDetector(new LocalFileDetector());
  $file_input->sendKeys("//local//file//path");

  $web_driver->findElement(WebDriverBy::id("readTermsOfUse"))->click();
  $web_driver->findElement(WebDriverBy::name("upload_button"))->submit();
  sleep(5);
  $web_driver->quit();
?>
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait

desired_cap = {
 'browser': 'Chrome',
 'browser_version': '75.0',
 'os': 'Windows',
 'os_version': '10',
 'name': 'Bstack-[Python] Sample Test'
}

driver = webdriver.Remote(
    command_executor='http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub.browserstack.com/wd/hub',
    desired_capabilities=desired_cap)
driver.get('http://www.fileconvoy.com')
driver.find_element_by_id('upfile_0').send_keys('//local//file//path')
driver.find_element_by_id('readTermsOfUse').click()
driver.find_element_by_name('upload_button').submit()
try:
    WebDriverWait(driver, 5).until(lambda x: x.find_element_by_id('TopMessage'))
    if(driver.find_element_by_id('TopMessage').text == "Your file(s) have been successfully uploaded."):
        # Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page starts with 'BrowserStack'
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}')
    else:
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File upload failed"}}')
except TimeoutException:
    driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in 5 seconds"}}')
driver.quit()
require 'rubygems'
require 'selenium-webdriver'

# Input capabilities
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browser'] = 'Chrome'
caps['browser_version'] = '75.0'
caps['os'] = 'Windows'
caps['os_version'] = '10'
caps['name'] = 'Bstack-[Ruby] Sample Test'


driver = Selenium::WebDriver.for(:remote,
  :url => "http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
  :desired_capabilities => caps)
driver.file_detector = lambda do |args|
  str = args.first.to_s
  str if File.exist?(str)
end
driver.navigate.to "http://www.fileconvoy.com"
driver.find_element(:id, "upfile_0").send_keys("//local//file//path");
driver.find_element(:id, "readTermsOfUse").click;
driver.find_element(:name, "upload_button").submit;
sleep(5)
driver.quit
use Selenium::Remote::Driver;

#Input capabilities
my $extraCaps = {
  "browser" => "Chrome",
  "browser_version" => "75.0",
  "os" => "Windows",
  "os_version" => "10",
  "name" => "Bstack-[Perl] Sample Test"
};

my $login = "YOUR_USERNAME";
my $key = "YOUR_ACCESS_KEY";
my $host = "$login:$key\@hub-cloud.browserstack.com";

my $driver = new Selenium::Remote::Driver('remote_server_addr' => $host,
  'port' => '80', 'extra_capabilities' => $extraCaps);
my $remote_fname = $driver->upload_file("//local//file//path");
$driver->get('http://www.fileconvoy.com');
$driver->find_element('upfile_0','id')->send_keys($remote_fname);
$driver->find_element('readTermsOfUse', 'id')->click();
$driver->find_element('upload_button', 'name')->click();
sleep 40;
$driver->quit();
Note: You can upload any file format from your local system by simply giving the path to that file.

Using default media files on remote desktop machines

By default, desktop platforms have some sample media files. This is also true for remote desktop instances spun up on BrowserStack.

You can use those files to test your web app’s file upload functionality using Selenium’s LocalFileDetector method and the file path.

Following are the file paths you can use:

Windows 10, 8.1, 8, 7

In the below remote file paths there are two \, the first \ is used as an escape character
*Video*
C:\\Users\\hello\\Documents\\video\\saper.avi
C:\\Users\\hello\\Documents\\video\\sample_mpeg4.mp4
C:\\Users\\hello\\Documents\\video\\sample_iTunes.mov
C:\\Users\\hello\\Documents\\video\\sample_mpeg2.m2v

*Images*
C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg
C:\\Users\\hello\\Documents\\images\\icon.png
C:\\Users\\hello\\Documents\\images\\cartoon-animation.gif

*Documents*
C:\\Users\\hello\\Documents\\documents\\xls-sample1.xls
C:\\Users\\hello\\Documents\\documents\\text-sample1.txt
C:\\Users\\hello\\Documents\\documents\\pdf-sample1.pdf
C:\\Users\\hello\\Documents\\documents\\doc-sample1.doc

*Audio*
C:\\Users\\hello\\Documents\\audio\\first_noel.mp3
C:\\Users\\hello\\Documents\\audio\\BachCPE_SonataAmin_1.wma
C:\\Users\\hello\\Documents\\audio\\250Hz_44100Hz_16bit_05sec.wav

*Zip files*
C:\\Users\\hello\\Documents\\4KBzipFile.zip
C:\\Users\\hello\\Documents\\1MBzipFile.zip

Windows XP

C:\\Documents\ and\ Settings\\hello\\url.txt
*Video*
/Users/test1/Documents/video/saper.avi
/Users/test1/Documents/video/sample_mpeg4.mp4
/Users/test1/Documents/video/sample_iTunes.mov
/Users/test1/Documents/video/sample_mpeg2.m2v

*Images*
/Users/test1/Documents/images/wallpaper1.jpg
/Users/test1/Documents/images/icon.png
/Users/test1/Documents/images/cartoon-animation.gif

*Documents*
/Users/test1/Documents/documents/xls-sample1.xls
/Users/test1/Documents/documents/text-sample1.txt
/Users/test1/Documents/documents/pdf-sample1.pdf
/Users/test1/Documents/documents/doc-sample1.doc

*Audio*
/Users/test1/Documents/audio/first_noel.mp3
/Users/test1/Documents/audio/BachCPE_SonataAmin_1.wma
/Users/test1/Documents/audio/250Hz_44100Hz_16bit_05sec.wav

*Zip files*
/Users/test1/Documents/4KBzipFile.zip
/Users/test1/Documents/1MBzipFile.zip
Protip:
  • You can choose any of the files from the above list for Windows and macOS operating systems, in the code snippet given below.
  • In the below code snippet, Other browsers include Chrome, Firefox, Edge and Safari browsers.

Usage

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.LocalFileDetector;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class JavaSample {

  public static final String AUTOMATE_USERNAME = "YOUR_USERNAME";
  public static final String AUTOMATE_KEY = "YOUR_ACCESS_KEY";
  public static final String URL = "https://" + AUTOMATE_USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub";

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

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("browser", "internet explorer");
    caps.setCapability("os", "windows");
    caps.setCapability("browser_version", "11.0");
    caps.setCapability("os_version", "10");
    caps.setCapability("browserstack.sendKeys", "true");
    caps.setCapability("browserstack.debug", "true");
    caps.setCapability("name", "Bstack-[Java] Sample Test");

    RemoteWebDriver driver = new RemoteWebDriver(new URL(URL), caps);
    driver.setFileDetector(new LocalFileDetector());
    driver.get("http://www.fileconvoy.com/");
    driver.findElement(By.id("upfile_0")).sendKeys("C:\\Users\\hello\\Documents\\audio\\first_noel.mp3"); //File path in remote machine
    driver.findElement(By.id("readTermsOfUse")).click();
    driver.findElement(By.name("upload_button")).submit();
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    try {
    	WebDriverWait wait = new WebDriverWait(driver, 5);
    	wait.until(ExpectedConditions.presenceOfElementLocated(By.id("TopMessage")));
    	if(driver.findElementById("TopMessage").getText().contains("successfully uploaded")) {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"File uploaded successfully\"}}");
    	} else {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File upload failed\"}}");
    	}
    }
    catch(Exception e) {
    	jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}");
    }
    driver.quit();
  }
}
const webdriver = require("selenium-webdriver");
const remote = require("selenium-webdriver/remote");

// Input capabilities
const capabilities = {
  "browserName": "Internet Explorer",
  "browser_version": "11.0",
  "os": "Windows",
  "os_version": "10",
  "name": "Bstack-[NodeJS] Upload Test",
  "browserstack.sendKeys": "true",
  "browserstack.debug": "true",
  "browserstack.user": "YOUR_USERNAME",
  "browserstack.key": "YOUR_ACCESS_KEY"
};

const driver = new webdriver.Builder()
  .usingServer("https://hub-cloud.browserstack.com/wd/hub")
  .withCapabilities(capabilities)
  .build();

//This will detect your local file
driver.setFileDetector(new remote.FileDetector());

(async () => {
  await driver.get("http://www.fileconvoy.com");

  const filePathElement = await driver.findElement(webdriver.By.id("upfile_0"));
  await filePathElement.sendKeys("C:\\Users\\hello\\Documents\\audio\\first_noel.mp3");

  await (await driver.findElement(webdriver.By.id("readTermsOfUse"))).click();
  await (await driver.findElement(webdriver.By.name("upload_button"))).click();
  try {
    await driver.wait(webdriver.until.elementIsVisible((await driver.findElement(webdriver.By.id('TopMessage')))), 5000);
    if((await driver.findElement(webdriver.By.id('TopMessage')).getText()).includes('successfully uploaded')) {
      await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}}');
    } else {
      await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}}');
    }
    } catch (e) {
    await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File could not be uploaded in time"}}');
    }
  await driver.quit();
})();
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest
{
  class Program
  {
    static void Main(string[] args)
    {
      IWebDriver driver;
      OpenQA.Selenium.IE.InternetExplorerOptions capability = new OpenQA.Selenium.IE.InternetExplorerOptions();
      capability.AddAdditionalCapability("browser", "IE", true);
      capability.AddAdditionalCapability("browser_version", "11", true);
      capability.AddAdditionalCapability("os", "Windows", true);
      capability.AddAdditionalCapability("os_version", "10", true);
      capability.AddAdditionalCapability("browserstack.sendKeys", "true", true);
      capability.AddAdditionalCapability("browserstack.debug", "true", true);
      capability.AddAdditionalCapability("browserstack.user", "YOUR_USERNAME", true);
      capability.AddAdditionalCapability("browserstack.key", "YOUR_ACCESS_KEY", true);
      capability.AddAdditionalCapability("name", "Bstack-[C_sharp] Sample Test", true);

      driver = new RemoteWebDriver(
        new Uri("http://hub-cloud.browserstack.com/wd/hub/"), capability
      );
      driver.Navigate().GoToUrl("http://www.fileconvoy.com");
      IWebElement uploadFile = driver.FindElement(By.Id("upfile_0"));
      Console.WriteLine(driver.Title);
      String path = "C:\\Users\\hello\\Documents\\audio\\first_noel.mp3";   //File path in remote machine
      LocalFileDetector detector = new LocalFileDetector();
      var allowsDetection = driver as IAllowsFileDetection;
      if (allowsDetection != null)
      {
        allowsDetection.FileDetector = new LocalFileDetector();
      }
      uploadFile.SendKeys(path);
      driver.FindElement(By.Id("readTermsOfUse")).Click();
      driver.FindElement(By.Id("upload_button")).Click();
      driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
      if (driver.FindElement(By.CssSelector("#TopMessage")).Text.Contains("successfully uploaded"))
      {
        ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}");
      }
      else
      {
        ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"File upload failed!\"}}");
      }
      driver.Quit();
    }
  }
}
<?php

  require_once('vendor/autoload.php');
  use Facebook\WebDriver\Remote\RemoteWebDriver;
  use Facebook\WebDriver\WebDriverBy;
  use Facebook\WebDriver\Remote\LocalFileDetector;

  $caps = array(
 "browser" => "Internet Explorer",
 "browser_version" => "11.0",
 "os" => "Windows",
 "os_version" => "10",
 "browserstack.sendKeys" => "true",
 "name" => "Bstack-[Php] Sample Test",
 "browserstack.debug" => "true"
);
  $web_driver = RemoteWebDriver::create(
    "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
    $caps
  );
  $web_driver->get("http://www.fileconvoy.com");
  $file_input = $web_driver->findElement(WebDriverBy::id("upfile_0"));
  $file_input->setFileDetector(new LocalFileDetector());
  $file_input->sendKeys("C:\\Users\\hello\\Documents\\audio\\first_noel.mp3");   //File path in remote machine

  $web_driver->findElement(WebDriverBy::id("readTermsOfUse"))->click();
  $web_driver->findElement(WebDriverBy::name("upload_button"))->submit();
  sleep(5);
  $web_driver->quit();
?>
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait

desired_cap = {
 'browser': 'Internet Explorer',
 'browser_version': '11.0',
 'os': 'Windows',
 'os_version': '10',
 'browserstack.sendKeys': 'true',
 'browserstack.debug': 'true',
 'name': 'Bstack-[Python] Sample Test'
}

driver = webdriver.Remote(
    command_executor='http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub.browserstack.com/wd/hub',
    desired_capabilities=desired_cap)
driver.get('http://www.fileconvoy.com')
driver.find_element_by_id('upfile_0').send_keys('C:\\Users\\hello\\Documents\\audio\\first_noel.mp3')  #File path in remote machine
driver.find_element_by_id('readTermsOfUse').click()
driver.find_element_by_name('upload_button').submit()
try:
    WebDriverWait(driver, 5).until(lambda x: x.find_element_by_id('TopMessage'))
    if(driver.find_element_by_id('TopMessage').text == "Your file(s) have been successfully uploaded."):
        # Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page starts with 'BrowserStack'
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}')
    else:
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File upload failed"}}')
except TimeoutException:
    driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in 5 seconds"}}')
driver.quit()
require 'rubygems'
require 'selenium-webdriver'

# Input capabilities
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browser'] = 'Internet Explorer'
caps['browser_version'] = '11.0'
caps['os'] = 'Windows'
caps['os_version'] = '10'
caps['name'] = 'Bstack-[Ruby] Sample Test'
caps['browserstack.sendKeys'] = 'true'
caps['browserstack.debug'] = 'true'
caps["javascriptEnabled"]='true' #Enabling the javascriptEnabled capability to execute javascript in the test script

driver = Selenium::WebDriver.for(:remote,
  :url => "http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
  :desired_capabilities => caps)
driver.file_detector = lambda do |args|
  str = args.first.to_s
  str if File.exist?(str)
end
driver.navigate.to "http://www.fileconvoy.com"
driver.find_element(:id, "upfile_0").send_keys("C:\\Users\\hello\\Documents\\audio\\first_noel.mp3")  #File path in remote machine
driver.execute_script('document.getElementById("readTermsOfUse").click();')
driver.find_element(:name, "upload_button").submit
sleep(5)
driver.quit
use Selenium::Remote::Driver;

#Input capabilities
my $extraCaps = {
  "browser" => "Internet Explorer",
  "browser_version" => "11.0",
  "os" => "Windows",
  "os_version" => "10",
  "browserstack.sendKeys" => "true",
  "browserstack.debug" => "true",
  "name" => "Bstack-[Perl] Sample Test"
};

my $login = "YOUR_USERNAME";
my $key = "YOUR_ACCESS_KEY";
my $host = "$login:$key\@hub-cloud.browserstack.com";

my $driver = new Selenium::Remote::Driver('remote_server_addr' => $host,
  'port' => '80', 'extra_capabilities' => $extraCaps);
my $remote_fname = $driver->upload_file("C:\\Users\\hello\\Documents\\audio\\first_noel.mp3"); #File path in remote machine
$driver->get('http://www.fileconvoy.com');
$driver->find_element('upfile_0','id')->send_keys($remote_fname);
$driver->find_element('readTermsOfUse', 'id')->click();
$driver->find_element('upload_button', 'name')->submit();
sleep 40;
$driver->quit();
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.LocalFileDetector;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.net.URL;

public class JavaSample {

  public static final String AUTOMATE_USERNAME = "YOUR_USERNAME";
  public static final String AUTOMATE_KEY = "YOUR_ACCESS_KEY";
  public static final String URL = "https://" + AUTOMATE_USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub";

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

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("browser", "chrome");
    caps.setCapability("os", "windows");
    caps.setCapability("browser_version", "latest");
    caps.setCapability("os_version", "10");
    caps.setCapability("name", "Bstack-[Java] Sample Test");

    RemoteWebDriver driver = new RemoteWebDriver(new URL(URL), caps);
    driver.setFileDetector(new LocalFileDetector());
    driver.get("http://www.fileconvoy.com/");
    driver.findElement(By.id("upfile_0")).sendKeys("C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg");  //File path in remote machine
    driver.findElement(By.id("readTermsOfUse")).click();
    driver.findElement(By.name("upload_button")).submit();
    JavascriptExecutor jse = (JavascriptExecutor)driver;
    try {
    	WebDriverWait wait = new WebDriverWait(driver, 5);
    	wait.until(ExpectedConditions.presenceOfElementLocated(By.id("TopMessage")));
    	if(driver.findElementById("TopMessage").getText().contains("successfully uploaded")) {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"File uploaded successfully\"}}");
    	} else {
    		jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File upload failed\"}}");
    	}
    }
    catch(Exception e) {
    	jse.executeScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}");
    }
    driver.quit();
  }
}
const webdriver = require('selenium-webdriver');
const fs = require('fs');
const remote = require('selenium-webdriver/remote');

// Input capabilities
const capabilities = {
 'browserName' : 'safari',
 'browser_version' : 'latest',
 'os' : 'OS X',
 'os_version' : 'Big Sur',
 'name': 'Safari test file upload', // test name
 'build': 'File upload testing' // Build name
}
async function runTestWithCaps () {
  let driver = new webdriver.Builder()
    .usingServer('http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub')
    .withCapabilities(capabilities)
    .build();
  //This will detect your local file
  await driver.setFileDetector(new remote.FileDetector);  
  await driver.get('http://www.fileconvoy.com/');
  await driver.findElement(webdriver.By.id('upfile_0')).sendKeys('/Users/test1/Documents/video/saper.avi');  // The file path in remote Mac machine is given here. See the sample file paths for different remote machines in the documentation page
  await driver.findElement(webdriver.By.id('readTermsOfUse')).click();
  await driver.findElement(webdriver.By.id('upload_button')).click();
  await driver.wait(webdriver.until.elementLocated(webdriver.By.id('TopMessage')), 5000);
  if((await driver.findElement(webdriver.By.id('TopMessage')).getText()).includes('successfully uploaded')) {
    await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}}');
  } else {
    await driver.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}}');
  }
  await driver.quit();
}
runTestWithCaps(); 
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest
{
    class Program
    {
        static void Main(string[] args)
        {
            IWebDriver driver;
            OpenQA.Selenium.Chrome.ChromeOptions capability = new OpenQA.Selenium.Chrome.ChromeOptions();
            capability.AddAdditionalCapability("browser", "Chrome", true);
            capability.AddAdditionalCapability("browser_version", "latest", true);
            capability.AddAdditionalCapability("os", "Windows", true);
            capability.AddAdditionalCapability("os_version", "10", true);
            capability.AddAdditionalCapability("browserstack.user", "YOUR_USERNAME", true);
            capability.AddAdditionalCapability("browserstack.key", "YOUR_ACCESS_KEY", true);
            capability.AddAdditionalCapability("name", "Bstack-[C_sharp] Sample Test", true);

            driver = new RemoteWebDriver(
              new Uri("http://hub-cloud.browserstack.com/wd/hub/"), capability
            );
            driver.Navigate().GoToUrl("http://www.fileconvoy.com");
            IWebElement uploadFile = driver.FindElement(By.Id("upfile_0"));
            Console.WriteLine(driver.Title);
            String path = "C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg";   //File path in remote machine
            uploadFile.SendKeys(path);
            driver.FindElement(By.Id("readTermsOfUse")).Click();
            driver.FindElement(By.Id("upload_button")).Click();
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
            String result = driver.FindElement(By.CssSelector("#TopMessage")).Text;
            if(result.Contains("successfully uploaded"))
            {
                ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}");
            }
            else
            {
                ((IJavaScriptExecutor)driver).ExecuteScript("browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"File upload failed!\"}}");
            }
            driver.Quit();
        }
    }
}
<?php

  require_once('vendor/autoload.php');
  use Facebook\WebDriver\Remote\RemoteWebDriver;
  use Facebook\WebDriver\WebDriverBy;
  use Facebook\WebDriver\Remote\LocalFileDetector;

  $caps = array(
 "browser" => "Chrome",
 "browser_version" => "75.0",
 "os" => "Windows",
 "os_version" => "10",
 "name" => "Bstack-[Php] Sample Test"
);
  $web_driver = RemoteWebDriver::create(
    "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
    $caps
  );
  $web_driver->get("http://www.fileconvoy.com");
  $file_input = $web_driver->findElement(WebDriverBy::id("upfile_0"));
  $file_input->setFileDetector(new LocalFileDetector());
  $file_input->sendKeys("C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg");   //File path in remote machine

  $web_driver->findElement(WebDriverBy::id("readTermsOfUse"))->click();
  $web_driver->findElement(WebDriverBy::name("upload_button"))->submit();
  sleep(5);
  $web_driver->quit();
?>
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait

desired_cap = {
 'browser': 'Chrome',
 'browser_version': '75.0',
 'os': 'Windows',
 'os_version': '10',
 'name': 'Bstack-[Python] Sample Test'
}

driver = webdriver.Remote(
    command_executor='http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub.browserstack.com/wd/hub',
    desired_capabilities=desired_cap)
driver.get('http://www.fileconvoy.com')
driver.find_element_by_id('upfile_0').send_keys('C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg')  #File path in remote machine
driver.find_element_by_id('readTermsOfUse').click()
driver.find_element_by_name('upload_button').submit()
try:
    WebDriverWait(driver, 5).until(lambda x: x.find_element_by_id('TopMessage'))
    if(driver.find_element_by_id('TopMessage').text == "Your file(s) have been successfully uploaded."):
        # Setting the status of test as 'passed' or 'failed' based on the condition; if title of the web page starts with 'BrowserStack'
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}')
    else:
        driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File upload failed"}}')
except TimeoutException:
    driver.execute_script('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in 5 seconds"}}')
driver.quit()
require 'rubygems'
require 'selenium-webdriver'

# Input capabilities
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browser'] = 'Chrome'
caps['browser_version'] = '75.0'
caps['os'] = 'Windows'
caps['os_version'] = '10'
caps['name'] = 'Bstack-[Ruby] Sample Test'


driver = Selenium::WebDriver.for(:remote,
  :url => "http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub",
  :desired_capabilities => caps)
driver.file_detector = lambda do |args|
  str = args.first.to_s
  str if File.exist?(str)
end
driver.navigate.to "http://www.fileconvoy.com"
driver.find_element(:id, "upfile_0").send_keys("C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg"); #File path in remote machine
driver.find_element(:id, "readTermsOfUse").click;
driver.find_element(:name, "upload_button").submit;
sleep(5)
driver.quit
use Selenium::Remote::Driver;

#Input capabilities
my $extraCaps = {
  "browser" => "Chrome",
  "browser_version" => "75.0",
  "os" => "Windows",
  "os_version" => "10",
  "name" => "Bstack-[Perl] Sample Test"
};

my $login = "YOUR_USERNAME";
my $key = "YOUR_ACCESS_KEY";
my $host = "$login:$key\@hub-cloud.browserstack.com";

my $driver = new Selenium::Remote::Driver('remote_server_addr' => $host,
  'port' => '80', 'extra_capabilities' => $extraCaps);
my $remote_fname = $driver->upload_file("C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg");   #File path in remote machine
$driver->get('http://www.fileconvoy.com');
$driver->find_element('upfile_0','id')->send_keys($remote_fname);
$driver->find_element('readTermsOfUse', 'id')->click();
$driver->find_element('upload_button', 'name')->submit();
sleep 40;
$driver->quit();

Using a file downloaded from the web in the same Automate session

Through your test script, you can instruct the remote browsers to:

  1. Navigate to a URL.
  2. Download a specific file.
  3. Upload that file to the web app under test.

To do this, you’ll need the file path. The file will be downloaded in these locations on the remote desktops:

Win XP

C:\Documents and Settings\hello\Downloads

Win 7 / 8 / 8.1 / 10

C:\Users\hello\Downloads

Mac

/Users/test1/Downloads

You can then upload it to the web app under test using LocalFileDetector and sendkeys method.

We're sorry to hear that. Please share your feedback so we can do better






Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback

Is this page helping you?

Yes
No

We're sorry to hear that. Please share your feedback so we can do better






Contact our Support team for immediate help while we work on improving our docs.

We're continuously improving our docs. We'd love to know what you liked





Thank you for your valuable feedback!

Talk to automation expert