Where to Upload a File to Browse on Safari
Examination File Upload Functionality
Test your spider web app'due south file upload functionality on BrowserStack Automate.
Introduction
This document guides you on how to test your spider web app's File Upload functionality in Automate by:
- Uploading files from your machine
- Uploading pre-loaded files
- Uploading files that are downloaded in the same automate session
Supported Browsers and Operating Systems
Component | Listing |
---|---|
Supported OS | All desktop and mobile Os |
Supported Browser | All (Chrome, Firefox, Safari, IE, Edge) |
Uploading files from your machine
You can send a file to remote browsers—directly from your workstation—in Automate, through the LocalFileDetector
method.
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.back up.ui.ExpectedConditions ; import org.openqa.selenium.back up.ui.WebDriverWait ; public class JavaSample { public static final String AUTOMATE_USERNAME = "YOUR_USERNAME" ; public static terminal Cord 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" , "eleven.0" ); caps . setCapability ( "os_version" , "10" ); caps . setCapability ( "browserstack.sendKeys" , "truthful" ); caps . setCapability ( "browserstack.debug" , "truthful" ); caps . setCapability ( "name" , "Bstack-[Coffee] Sample Test" ); RemoteWebDriver driver = new RemoteWebDriver ( new URL ( URL ), caps ); driver . setFileDetector ( new LocalFileDetector ()); driver . become ( "http://world wide web.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 ) commuter ; try { WebDriverWait look = new WebDriverWait ( commuter , v ); wait . until ( ExpectedConditions . presenceOfElementLocated ( Past . 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\": {\"condition\": \"failed\", \"reason\": \"File upload failed\"}}" ); } } take hold of ( Exception e ) { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"condition\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}" ); } commuter . quit (); } }
const webdriver = crave ( " selenium-webdriver " ); const remote = crave ( " selenium-webdriver/remote " ); // Input capabilities const capabilities = { " browserName " : " Cyberspace Explorer " , " browser_version " : " 11.0 " , " os " : " Windows " , " os_version " : " x " , " name " : " Bstack-[NodeJS] Upload Exam " , " browserstack.sendKeys " : " true " , " browserstack.debug " : " true " , " browserstack.user " : " YOUR_USERNAME " , " browserstack.cardinal " : " YOUR_ACCESS_KEY " }; const commuter = new webdriver . Builder () . usingServer ( " https://hub-cloud.browserstack.com/wd/hub " ) . withCapabilities ( capabilities ) . build (); //This volition detect your local file driver . setFileDetector ( new remote . FileDetector ()); ( async () => { wait driver . get ( " http://www.fileconvoy.com " ); const filePathElement = await driver . findElement ( webdriver . By . id ( " upfile_0 " )); await filePathElement . sendKeys ( " //local//file//path " ); wait ( look driver . findElement ( webdriver . By . id ( " readTermsOfUse " ))). click (); await ( await driver . findElement ( webdriver . By . name ( " upload_button " ))). click (); try { wait driver . expect ( webdriver . until . elementIsVisible (( await commuter . findElement ( webdriver . By . id ( ' TopMessage ' )))), 5000 ); if (( wait commuter . findElement ( webdriver . Past . id ( ' TopMessage ' )). getText ()). includes ( ' successfully uploaded ' )) { await driver . executeScript ( ' browserstack_executor: {"activity": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}} ' ); } else { look driver . executeScript ( ' browserstack_executor: {"activeness": "setSessionStatus", "arguments": {"condition":"failed","reason": "File upload failed"}} ' ); } } take hold of ( e ) { wait driver . executeScript ( ' browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File could not be uploaded in time"}} ' ); } expect driver . quit (); })();
using Arrangement ; using Organization.Text ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Program { static void Main ( cord [] args ) { Encoding . RegisterProvider ( CodePagesEncodingProvider . Instance ); IWebDriver driver ; OpenQA . Selenium . IE . InternetExplorerOptions capability = new OpenQA . Selenium . IE . InternetExplorerOptions (); capability . AddAdditionalCapability ( "browser" , "IE" , truthful ); adequacy . AddAdditionalCapability ( "browser_version" , "11" , true ); capability . AddAdditionalCapability ( "bone" , "Windows" , true ); capability . AddAdditionalCapability ( "os_version" , "x" , true ); capability . AddAdditionalCapability ( "browserstack.sendKeys" , "true" , true ); capability . AddAdditionalCapability ( "browserstack.debug" , "truthful" , true ); capability . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , truthful ); adequacy . AddAdditionalCapability ( "browserstack.central" , "YOUR_ACCESS_KEY" , true ); adequacy . AddAdditionalCapability ( "name" , "Bstack-[C_sharp] Sample Exam" , true ); commuter = new RemoteWebDriver ( new Uri ( "http://hub-cloud.browserstack.com/wd/hub/" ), capability ); commuter . 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 != zip ) { allowsDetection . FileDetector = detector ; } 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: {\"activity\": \"setSessionStatus\", \"arguments\": {\"condition\":\"passed\", \"reason\": \"File uploaded successfully!\"}}" ); } else { (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"activeness\": \"setSessionStatus\", \"arguments\": {\"condition\":\"failed\", \"reason\": \"File upload failed!\"}}" ); } driver . Quit (); } } }
<?php require_once ( 'vendor/autoload.php' ); use Facebook\WebDriver\Remote\RemoteWebDriver ; utilize Facebook\WebDriver\WebDriverBy ; use Facebook\WebDriver\Remote\LocalFileDetector ; $caps = assortment ( "browser" => "Internet Explorer" , "browser_version" => "11.0" , "os" => "Windows" , "os_version" => "10" , "browserstack.sendKeys" => "truthful" , "proper name" => "Bstack-[Php] Sample Examination" , "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 :: proper 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' , 'bone' : 'Windows' , 'os_version' : '10' , 'browserstack.sendKeys' : 'true' , 'browserstack.debug' : 'truthful' , '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 () commuter . find_element_by_name ( 'upload_button' ). submit () try : WebDriverWait ( driver , five ). until ( lambda ten : x . find_element_by_id ( 'TopMessage' )) if ( driver . find_element_by_id ( 'TopMessage' ). text == "Your file(southward) have been successfully uploaded." ): # Setting the condition of examination 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 five seconds"}}' ) driver . quit ()
require 'rubygems' crave '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 [ 'proper noun' ] = 'Bstack-[Ruby] Sample Test' caps [ 'browserstack.sendKeys' ] = 'truthful' caps [ 'browserstack.debug' ] = 'truthful' 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://world wide web.fileconvoy.com" commuter . find_element ( :id , "upfile_0" ). send_keys ( "//local//file//path" ) driver . execute_script ( 'certificate.getElementById("readTermsOfUse").click();' ) commuter . find_element ( :name , "upload_button" ). submit sleep ( five ) commuter . quit
apply Selenium::Remote:: Driver ; #Input capabilities my $extraCaps = { " browser " => " Net Explorer ", " browser_version " => " 11.0 ", " bone " => " Windows ", " os_version " => " ten ", " browserstack.sendKeys " => " true ", " browserstack.debug " => " true ", " proper name " => " Bstack-[Perl] Sample Exam " }; my $login = " YOUR_USERNAME "; my $key = " YOUR_ACCESS_KEY "; my $host = " $login : $key \@ hub-cloud.browserstack.com "; my $driver = new Selenium::Remote:: Commuter (' remote_server_addr ' => $host , ' port ' => ' 80 ', ' extra_capabilities ' => $extraCaps ); my $remote_fname = $commuter -> upload_file (" //local//file//path "); $driver -> become (' http://www.fileconvoy.com '); $commuter -> find_element (' upfile_0 ',' id ') -> send_keys ( $remote_fname ); $driver -> find_element (' readTermsOfUse ', ' id ') -> click (); $driver -> find_element (' upload_button ', ' name ') -> click (); sleep xl ; $commuter -> quit ();
Annotation: Other browsers include Chrome, Firefox, Edge and Safari browsers.
You can send a file to remote browsers—directly from your workstation—in Automate, through the LocalFileDetector
method.
import org.openqa.selenium.Past ; 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.back up.ui.ExpectedConditions ; import org.openqa.selenium.support.ui.WebDriverWait ; import java.cyberspace.URL ; public class JavaSample { public static concluding String AUTOMATE_USERNAME = "YOUR_USERNAME" ; public static final Cord 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-[Coffee] Sample Test" ); WebDriver driver = new RemoteWebDriver ( new URL ( URL ), caps ); driver . setFileDetector ( new LocalFileDetector ()); driver . go ( "http://www.fileconvoy.com/" ); driver . findElement ( By . id ( "upfile_0" )). sendKeys ( "//local//file//path" ); driver . findElement ( By . id ( "readTermsOfUse" )). click (); commuter . findElement ( By . proper name ( "upload_button" )). submit (); JavascriptExecutor jse = ( JavascriptExecutor ) commuter ; try { WebDriverWait wait = new WebDriverWait ( driver , v ); expect . 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 eastward ) { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}" ); } driver . quit (); } }
const webdriver = crave ( ' selenium-webdriver ' ); const fs = require ( ' fs ' ); const remote = require ( ' selenium-webdriver/remote ' ); // Input capabilities const capabilities = { ' browserName ' : ' safari ' , ' browser_version ' : ' latest ' , ' os ' : ' Bone X ' , ' os_version ' : ' Big Sur ' , ' proper noun ' : ' Safari exam file upload ' , // test proper name ' build ' : ' File upload testing ' // Build name } async function runTestWithCaps () { allow commuter = new webdriver . Builder () . usingServer ( ' http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub ' ) . withCapabilities ( capabilities ) . build (); //This will observe your local file expect driver . setFileDetector ( new remote . FileDetector ); await driver . go ( ' http://www.fileconvoy.com/ ' ); await driver . findElement ( webdriver . Past . id ( ' upfile_0 ' )). sendKeys ( ' //path//to//your//local//file ' ); // Path to teh file in your organization needs to be given here await driver . findElement ( webdriver . By . id ( ' readTermsOfUse ' )). click (); wait driver . findElement ( webdriver . Past . id ( ' upload_button ' )). click (); wait driver . wait ( webdriver . until . elementLocated ( webdriver . By . id ( ' TopMessage ' )), 5000 ); if (( expect driver . findElement ( webdriver . By . id ( ' TopMessage ' )). getText ()). includes ( ' successfully uploaded ' )) { look 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"}} ' ); } expect commuter . quit (); } runTestWithCaps ();
using System ; using System.Text ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Programme { static void Main ( string [] args ) { Encoding . RegisterProvider ( CodePagesEncodingProvider . Instance ); IWebDriver driver ; OpenQA . Selenium . Chrome . ChromeOptions capability = new OpenQA . Selenium . Chrome . ChromeOptions (); capability . AddAdditionalCapability ( "browser" , "Chrome" , true ); capability . AddAdditionalCapability ( "browser_version" , "75.0" , true ); adequacy . AddAdditionalCapability ( "os" , "Windows" , true ); capability . AddAdditionalCapability ( "os_version" , "10" , true ); adequacy . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , truthful ); capability . AddAdditionalCapability ( "browserstack.key" , "YOUR_ACCESS_KEY" , true ); capability . AddAdditionalCapability ( "name" , "Bstack-[C_sharp] Sample Exam" , true ); driver = new RemoteWebDriver ( new Uri ( "http://hub-deject.browserstack.com/wd/hub/" ), capability ); driver . Navigate (). GoToUrl ( "http://www.fileconvoy.com" ); IWebElement uploadFile = commuter . FindElement ( Past . Id ( "upfile_0" )); Console . WriteLine ( driver . Title ); Cord path = "path//to//your//local//file" ; //File path in your local machine LocalFileDetector detector = new LocalFileDetector (); var allowsDetection = driver equally IAllowsFileDetection ; if ( allowsDetection != null ) { allowsDetection . FileDetector = detector ; } uploadFile . SendKeys ( path ); commuter . FindElement ( Past . Id ( "readTermsOfUse" )). Click (); driver . FindElement ( Past . Id ( "upload_button" )). Click (); driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromSeconds ( 5 ); Cord 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 ) commuter ). 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 = assortment ( "browser" => "Chrome" , "browser_version" => "75.0" , "bone" => "Windows" , "os_version" => "10" , "name" => "Bstack-[Php] Sample Test" ); $web_driver = RemoteWebDriver :: create ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.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 :: proper noun ( "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' , 'proper noun' : 'Bstack-[Python] Sample Test' } commuter = webdriver . Remote ( command_executor = 'http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) driver . get ( 'http://world wide web.fileconvoy.com' ) driver . find_element_by_id ( 'upfile_0' ). send_keys ( '//local//file//path' ) commuter . find_element_by_id ( 'readTermsOfUse' ). click () driver . find_element_by_name ( 'upload_button' ). submit () effort : 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 equally 'passed' or 'failed' based on the condition; if title of the web page starts with 'BrowserStack' driver . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"condition":"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: {"activity": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in five seconds"}}' ) commuter . quit ()
require 'rubygems' require 'selenium-webdriver' # Input capabilities caps = Selenium :: WebDriver :: Remote :: Capabilities . new caps [ 'browser' ] = 'Chrome' caps [ 'browser_version' ] = '75.0' caps [ 'bone' ] = 'Windows' caps [ 'os_version' ] = '10' caps [ 'name' ] = 'Bstack-[Ruby] Sample Test' commuter = Selenium :: WebDriver . for ( :remote , :url => "http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub" , :desired_capabilities => caps ) driver . file_detector = lambda do | args | str = args . first . to_s str if File . exist? ( str ) terminate driver . navigate . to "http://world wide web.fileconvoy.com" driver . find_element ( :id , "upfile_0" ). send_keys ( "//local//file//path" ); driver . find_element ( :id , "readTermsOfUse" ). click ; commuter . find_element ( :name , "upload_button" ). submit ; slumber ( 5 ) driver . quit
utilise Selenium::Remote:: Commuter ; #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 "); $commuter -> get (' http://world wide web.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 ();
package com.browserstack ; import io.appium.java_client.AppiumDriver ; import io.appium.java_client.android.AndroidDriver ; import io.appium.java_client.android.AndroidElement ; import org.openqa.selenium.By ; import org.openqa.selenium.WebDriver ; import org.openqa.selenium.WebElement ; import org.openqa.selenium.remote.DesiredCapabilities ; import org.openqa.selenium.remote.RemoteWebDriver ; import java.io.File ; import java.net.URL ; public class UploadFile { public static final String USERNAME = "YOUR_USERNAME" ; public static final Cord AUTOMATE_KEY = "YOUR_ACCESS_KEY" ; public static final String URL = "http://" + USERNAME + ":" + AUTOMATE_KEY + "@hub-deject.browserstack.com/wd/hub" ; public static void principal ( String [] args ) throws Exception { DesiredCapabilities caps = new DesiredCapabilities (); caps . setCapability ( "device" , "Samsung Galaxy S9" ); caps . setCapability ( "os_version" , "8.0" ); caps . setCapability ( "name" , "upload" ); caps . setCapability ( "build" , "Upload File" ); /**uploading files**/ AndroidDriver < WebElement > commuter = new AndroidDriver < WebElement >( new URL ( URL ), caps ); driver . get ( "https://the-internet.herokuapp.com/upload" ); commuter . pushFile ( "/data/local/tmp/<file_name>" , new File ( "<local_file_path>" )); driver . findElement ( By . id ( "file-upload" )). sendKeys ( "/information/local/tmp/<file_name>" ); //Thread.sleep(2000); driver . findElement ( Past . id ( "file-submit" )). submit (); driver . quit (); } }
var wd = crave ( ' wd ' ); var fs = crave ( ' fs ' ) var affirm = require ( ' affirm ' ); var asserters = wd . asserters ; desiredCaps = { ' browserstack.user ' : ' YOUR_USERNAME ' , ' browserstack.central ' : ' YOUR_ACCESS_KEY ' , ' build ' : ' Node Push File ' , ' name ' : ' upload file ' , ' device ' : ' Google Pixel 3 ' , ' browserstack.debug ' : truthful }; driver = wd . promiseRemote ( " http://hub-cloud.browserstack.com/wd/hub " ); commuter . init ( desiredCaps ) . then ( role () { return driver . become ( ' https://the-internet.herokuapp.com/upload ' ); }) . so ( function () { let data = fs . readFileSync ( ' <local_file_path> ' ) let convertedData = new Buffer . from ( information , ' base64 ' ) return driver . pushFileToDevice ( ' /information/local/tmp/<file_name> ' , convertedData ); }) . and then ( function () { render driver . elementById ( " file-upload " ); }) . so ( function ( uploadFile ) { return uploadFile . sendKeys ( ' /information/local/tmp/<file_name> ' ); }) . then ( function () { return driver . elementById ( " file-submit " ); }) . and then ( function ( clickSubmit ) { return clickSubmit . click (); }) . fin ( function () { return driver . quit (); }) . done ();
using Organization ; using OpenQA.Selenium.Appium ; using OpenQA.Selenium.Appium.Android ; using OpenQA.Selenium.Remote ; using OpenQA.Selenium.Support.UI ; using Arrangement.Collections.Generic ; using OpenQA.Selenium ; using System.IO ; using NUnit.Framework ; namespace BrowserStack { public class UploadFile { [ Test ] public void Test () { AppiumOptions caps = new AppiumOptions (); // Set your BrowserStack access credentials caps . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" ); caps . AddAdditionalCapability ( "browserstack.key" , "YOUR_ACCESS_KEY" ); // Specify device and os_version caps . AddAdditionalCapability ( "device" , "Samsung Galaxy S10" ); caps . AddAdditionalCapability ( "os_version" , "9.0" ); caps . AddAdditionalCapability ( "build" , "Upload File - CSharp" ); caps . AddAdditionalCapability ( "proper name" , "upload_file" ); AndroidDriver < IWebElement > driver = new AndroidDriver < IWebElement >( new Uri ( "http://hub-cloud.browserstack.com/wd/hub" ), caps ); driver . PushFile ( "/data/local/tmp/<file_name>" , new FileInfo ( "<local_file_path>" )); driver . Navigate (). GoToUrl ( "https://the-internet.herokuapp.com/upload" ); commuter . FindElement ( By . Id ( "file-upload" )). SendKeys ( "/information/local/tmp/<file_name>" ); driver . FindElement ( By . Id ( "file-submit" )). Submit (); driver . Quit (); } } }
<?php require 'android_upload.php' ; class AppAutomateTest extends BrowserStackTest { public function sendkeys ( $elem , $keys ) { $data = array ( 'value' => str_split ( $keys ), 'text' => $keys ); $url = $this -> getSessionUrl () -> descend ( 'chemical element' ) -> descend ( $elem -> getId ()) -> descend ( 'value' ); $this -> getDriver () -> curl ( 'POST' , $url , $data ); } public function testNativeApplication () { $this -> pushFile ( '/data/local/tmp/<file_name>' , '<local_file_path>' ); $this -> url ( "https://the-internet.herokuapp.com/upload" ); $elem = $this -> byId ( 'file-upload' ); $this -> sendkeys ( $elem , "/data/local/tmp/<file_name>" ); $this -> chemical element ( $this -> using ( 'id' ) -> value ( 'file-submit' )) -> submit (); } } ?>
from appium import webdriver from appium.webdriver.mutual.mobileby import MobileBy from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import fourth dimension userName = "YOUR_USERNAME" accessKey = "YOUR_ACCESS_KEY" desired_caps = { "os_version" : "8.0" , "device" : "Samsung Galaxy S9" , "name" : "test" , "build" : "Python File Upload" } driver = webdriver . Remote ( "https://" + userName + ":" + accessKey + "@hub-deject.browserstack.com/wd/hub" , desired_caps ) driver . push_file ( "/data/local/tmp/<file_name>" , source_path = "<local_file_path>" ) commuter . become ( "https://the-net.herokuapp.com/upload" ) driver . find_element_by_id ( "file-upload" ). send_keys ( "/information/local/tmp/<file_name>" ) commuter . find_element_by_id ( "file-submit" ). submit (); driver . quit ()
crave 'rubygems' require 'appium_lib' caps = {} caps [ 'device' ] = 'Google Pixel 3' caps [ 'platformName' ] = 'Android' caps [ 'realMobile' ] = 'true' caps [ 'proper name' ] = 'BStack-[Ruby] Sample Test' # examination name caps [ 'build' ] = 'BStack Build Number 1' # CI/CD job or build name appium_driver = Appium :: Driver . new ({ 'caps' => caps , 'appium_lib' => { :server_url => "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" }}, true ) driver = appium_driver . start_driver driver . push_file ( '/information/local/tmp/<file_name>' , ( File . read '<local_file_path>' )) commuter . get ( "https://the-internet.herokuapp.com/upload" ) driver . find_element ( :id , "file-upload" ). send_keys ( "/information/local/tmp/<file_name>" ) driver . find_element ( :id , "file-submit" ). submit (); commuter . quit
Note: Ensure to upload the file from your machine to BrowserStack remote machine's /data/local/tmp/<file_name>
directory only, and and then upload file from BrowserStack remote machine'due south /information/local/tmp/<file_name>
directory to the web application.
In the to a higher place code snippet, the pushFile()
method is used to upload file from your machine to BrowserStack remote machine, the method accepts remote_machine_file_path
and local_machine_file_path
as arguments respectively. The code then navigates to the URL where file has to be uploaded and through the send_keys()
method, upload the file which is present in remote_machine_file_path
.
Uploading file in iOS device is possible by downloading that file outset and so uploading information technology in the same automate session. For more details, refer the department for uploading the files which are downloaded in the same Automate session.
Note: You can upload whatsoever file format from your local system by just giving the path to that file.
Uploading pre-loaded files
By default, desktop and mobile platforms accept some sample media files. This is also true for remote instances spun up on BrowserStack. Post-obit are the file paths you can apply:
Windows 10, 8.1, viii, vii
In the below remote file paths at that place are two \, the showtime \ is used equally an escape character *Video* C:\\Users\\hi\\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\\hullo\\Documents\\documents\\xls-sample1.xls C:\\Users\\hi\\Documents\\documents\\text-sample1.txt C:\\Users\\hello\\Documents\\documents\\pdf-sample1.pdf C:\\Users\\hello\\Documents\\documents\\dr.-sample1.docx *Audio* C:\\Users\\hello\\Documents\\audio\\first_noel.mp3 C:\\Users\\hello\\Documents\\sound\\BachCPE_SonataAmin_1.wma C:\\Users\\hello\\Documents\\sound\\250Hz_44100Hz_16bit_05sec.wav *Zip files* C:\\Users\\hi\\Documents\\4KBzipFile.zip C:\\Users\\hullo\\Documents\\1MBzipFile.null
Windows XP
C:\\Documents\ and\ Settings\\hello\\url.txt
You lot can choose any of the files from the above list for Windows operating systems, in the code snippet given below.
*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/drawing-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.docx *Audio* /Users/test1/Documents/audio/first_noel.mp3 /Users/test1/Documents/sound/BachCPE_SonataAmin_1.wma /Users/test1/Documents/audio/250Hz_44100Hz_16bit_05sec.wav *Cipher files* /Users/test1/Documents/4KBzipFile.nil /Users/test1/Documents/1MBzipFile.zero
You can choose whatever of the files from the above listing for macOS operating systems, in the code snippet given beneath.
Uploading preloaded files in Android is not possible as of at present, however yous tin upload the file from your machine to the web application using the pushFile()
method as shown in Uploading files from your motorcar section
Uploading preloaded files in iOS can be implemented using the following iOS snippets.
Yous can use those files to exam your web app'due south file upload functionality using Selenium's LocalFileDetector
method and the file path.
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.back up.ui.ExpectedConditions ; import org.openqa.selenium.support.ui.WebDriverWait ; public class JavaSample { public static concluding String AUTOMATE_USERNAME = "YOUR_USERNAME" ; public static final String AUTOMATE_KEY = "YOUR_ACCESS_KEY" ; public static last String URL = "https://" + AUTOMATE_USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub" ; public static void principal ( Cord [] args ) throws Exception { DesiredCapabilities caps = new DesiredCapabilities (); caps . setCapability ( "browser" , "internet explorer" ); caps . setCapability ( "bone" , "windows" ); caps . setCapability ( "browser_version" , "11.0" ); caps . setCapability ( "os_version" , "ten" ); 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 . become ( "http://www.fileconvoy.com/" ); commuter . findElement ( By . id ( "upfile_0" )). sendKeys ( "C:\\Users\\hello\\Documents\\audio\\first_noel.mp3" ); //File path in remote car driver . findElement ( Past . id ( "readTermsOfUse" )). click (); driver . findElement ( By . proper name ( "upload_button" )). submit (); JavascriptExecutor jse = ( JavascriptExecutor ) commuter ; try { WebDriverWait await = new WebDriverWait ( commuter , 5 ); wait . until ( ExpectedConditions . presenceOfElementLocated ( By . id ( "TopMessage" ))); if ( driver . findElementById ( "TopMessage" ). getText (). contains ( "successfully uploaded" )) { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"condition\": \"passed\", \"reason\": \"File uploaded successfully\"}}" ); } else { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File upload failed\"}}" ); } } catch ( Exception east ) { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not be uploaded in v 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 " : " x " , " proper noun " : " Bstack-[NodeJS] Upload Test " , " browserstack.sendKeys " : " true " , " browserstack.debug " : " truthful " , " browserstack.user " : " YOUR_USERNAME " , " browserstack.primal " : " YOUR_ACCESS_KEY " }; const driver = new webdriver . Architect () . usingServer ( " https://hub-deject.browserstack.com/wd/hub " ) . withCapabilities ( capabilities ) . build (); //This will detect your local file driver . setFileDetector ( new remote . FileDetector ()); ( async () => { wait driver . get ( " http://www.fileconvoy.com " ); const filePathElement = await driver . findElement ( webdriver . By . id ( " upfile_0 " )); await filePathElement . sendKeys ( " C: \\ Users \\ hullo \\ Documents \\ audio \\ first_noel.mp3 " ); await ( expect driver . findElement ( webdriver . By . id ( " readTermsOfUse " ))). click (); expect ( wait commuter . findElement ( webdriver . By . proper name ( " upload_button " ))). click (); endeavor { await driver . wait ( webdriver . until . elementIsVisible (( wait driver . findElement ( webdriver . By . id ( ' TopMessage ' )))), 5000 ); if (( await commuter . findElement ( webdriver . By . id ( ' TopMessage ' )). getText ()). includes ( ' successfully uploaded ' )) { await driver . executeScript ( ' browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}} ' ); } else { wait commuter . executeScript ( ' browserstack_executor: {"activity": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}} ' ); } } catch ( e ) { await driver . executeScript ( ' browserstack_executor: {"action": "setSessionStatus", "arguments": {"condition":"failed","reason": "File could not be uploaded in time"}} ' ); } await commuter . quit (); })();
using System ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Plan { 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" , truthful ); adequacy . AddAdditionalCapability ( "os" , "Windows" , true ); capability . AddAdditionalCapability ( "os_version" , "10" , true ); capability . AddAdditionalCapability ( "browserstack.sendKeys" , "true" , truthful ); capability . AddAdditionalCapability ( "browserstack.debug" , "true" , true ); adequacy . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , truthful ); adequacy . AddAdditionalCapability ( "browserstack.central" , "YOUR_ACCESS_KEY" , true ); adequacy . AddAdditionalCapability ( "proper noun" , "Bstack-[C_sharp] Sample Test" , truthful ); driver = new RemoteWebDriver ( new Uri ( "http://hub-deject.browserstack.com/wd/hub/" ), capability ); driver . Navigate (). GoToUrl ( "http://www.fileconvoy.com" ); IWebElement uploadFile = driver . FindElement ( By . Id ( "upfile_0" )); Console . WriteLine ( driver . Championship ); String path = "C:\\Users\\how-do-you-do\\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 ( Past . Id ( "readTermsOfUse" )). Click (); driver . FindElement ( Past . 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\": {\"condition\":\"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" => "eleven.0" , "os" => "Windows" , "os_version" => "10" , "browserstack.sendKeys" => "truthful" , "name" => "Bstack-[Php] Sample Exam" , "browserstack.debug" => "true" ); $web_driver = RemoteWebDriver :: create ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , $caps ); $web_driver -> become ( "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 \\ sound \\ 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' : 'ten' , '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' ) commuter . find_element_by_id ( 'upfile_0' ). send_keys ( 'C: \\ Users \\ hullo \\ Documents \\ sound \\ first_noel.mp3' ) #File path in remote automobile commuter . find_element_by_id ( 'readTermsOfUse' ). click () driver . find_element_by_name ( 'upload_button' ). submit () try : WebDriverWait ( commuter , 5 ). until ( lambda 10 : x . find_element_by_id ( 'TopMessage' )) if ( commuter . 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 championship of the spider 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 : commuter . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in five seconds"}}' ) driver . quit ()
require 'rubygems' require 'selenium-webdriver' # Input capabilities caps = Selenium :: WebDriver :: Remote :: Capabilities . new caps [ 'browser' ] = 'Internet Explorer' caps [ 'browser_version' ] = 'eleven.0' caps [ 'os' ] = 'Windows' caps [ 'os_version' ] = '10' caps [ 'name' ] = 'Bstack-[Ruddy] Sample Test' caps [ 'browserstack.sendKeys' ] = 'true' caps [ 'browserstack.debug' ] = 'truthful' 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 . offset . to_s str if File . exist? ( str ) end driver . navigate . to "http://www.fileconvoy.com" commuter . find_element ( :id , "upfile_0" ). send_keys ( "C: \\ Users \\ hello \\ Documents \\ sound \\ first_noel.mp3" ) #File path in remote automobile driver . execute_script ( 'certificate.getElementById("readTermsOfUse").click();' ) driver . find_element ( :proper name , "upload_button" ). submit sleep ( 5 ) driver . quit
utilize Selenium::Remote:: Commuter ; #Input capabilities my $extraCaps = { " browser " => " Cyberspace Explorer ", " browser_version " => " xi.0 ", " os " => " Windows ", " os_version " => " 10 ", " browserstack.sendKeys " => " true ", " browserstack.debug " => " true ", " name " => " Bstack-[Perl] Sample Exam " }; my $login = " YOUR_USERNAME "; my $central = " YOUR_ACCESS_KEY "; my $host = " $login : $primal \@ hub-cloud.browserstack.com "; my $driver = new Selenium::Remote:: Driver (' remote_server_addr ' => $host , ' port ' => ' eighty ', ' extra_capabilities ' => $extraCaps ); my $remote_fname = $driver -> upload_file (" C: \\ Users \\ hello \\ Documents \\ sound \\ first_noel.mp3 "); #File path in remote machine $driver -> become (' http://world wide web.fileconvoy.com '); $driver -> find_element (' upfile_0 ',' id ') -> send_keys ( $remote_fname ); $commuter -> find_element (' readTermsOfUse ', ' id ') -> click (); $driver -> find_element (' upload_button ', ' name ') -> submit (); sleep 40 ; $driver -> quit ();
Notation: Other browsers include Chrome, Firefox, Edge and Safari browsers.
You tin can employ those files to test your web app's file upload functionality using Selenium'due south LocalFileDetector
method and the file path.
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.back up.ui.WebDriverWait ; import coffee.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-deject.browserstack.com/wd/hub" ; public static void chief ( 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 ( "proper 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\\howdy\\Documents\\images\\wallpaper1.jpg" ); //File path in remote motorcar driver . findElement ( Past . id ( "readTermsOfUse" )). click (); driver . findElement ( By . name ( "upload_button" )). submit (); JavascriptExecutor jse = ( JavascriptExecutor ) driver ; attempt { WebDriverWait wait = new WebDriverWait ( driver , 5 ); wait . until ( ExpectedConditions . presenceOfElementLocated ( Past . 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: {\"activeness\": \"setSessionStatus\", \"arguments\": {\"condition\": \"failed\", \"reason\": \"File could not be uploaded in v seconds\"}}" ); } driver . quit (); } }
const webdriver = crave ( ' selenium-webdriver ' ); const fs = crave ( ' fs ' ); const remote = require ( ' selenium-webdriver/remote ' ); // Input capabilities const capabilities = { ' browserName ' : ' safari ' , ' browser_version ' : ' latest ' , ' bone ' : ' Os X ' , ' os_version ' : ' Big Sur ' , ' proper name ' : ' Safari test file upload ' , // test name ' build ' : ' File upload testing ' // Build proper noun } async function runTestWithCaps () { permit driver = new webdriver . Builder () . usingServer ( ' http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub ' ) . withCapabilities ( capabilities ) . build (); //This will detect your local file await driver . setFileDetector ( new remote . FileDetector ); look 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. Run across the sample file paths for different remote machines in the documentation page await driver . findElement ( webdriver . By . id ( ' readTermsOfUse ' )). click (); look driver . findElement ( webdriver . By . id ( ' upload_button ' )). click (); await driver . wait ( webdriver . until . elementLocated ( webdriver . By . id ( ' TopMessage ' )), 5000 ); if (( await driver . findElement ( webdriver . Past . 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: {"activity": "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 Master ( cord [] args ) { IWebDriver driver ; OpenQA . Selenium . Chrome . ChromeOptions capability = new OpenQA . Selenium . Chrome . ChromeOptions (); capability . AddAdditionalCapability ( "browser" , "Chrome" , truthful ); adequacy . AddAdditionalCapability ( "browser_version" , "latest" , true ); capability . AddAdditionalCapability ( "bone" , "Windows" , true ); adequacy . AddAdditionalCapability ( "os_version" , "10" , true ); capability . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , true ); capability . AddAdditionalCapability ( "browserstack.cardinal" , "YOUR_ACCESS_KEY" , true ); capability . AddAdditionalCapability ( "name" , "Bstack-[C_sharp] Sample Examination" , true ); driver = new RemoteWebDriver ( new Uri ( "http://hub-cloud.browserstack.com/wd/hub/" ), capability ); commuter . Navigate (). GoToUrl ( "http://world wide web.fileconvoy.com" ); IWebElement uploadFile = driver . FindElement ( By . Id ( "upfile_0" )); Panel . WriteLine ( driver . Title ); Cord 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 (); commuter . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromSeconds ( 5 ); String result = driver . FindElement ( By . CssSelector ( "#TopMessage" )). Text ; if ( upshot . Contains ( "successfully uploaded" )) { (( IJavaScriptExecutor ) commuter ). ExecuteScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}" ); } else { (( IJavaScriptExecutor ) commuter ). 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" => "x" , "proper name" => "Bstack-[Php] Sample Test" ); $web_driver = RemoteWebDriver :: create ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , $caps ); $web_driver -> become ( "http://www.fileconvoy.com" ); $file_input = $web_driver -> findElement ( WebDriverBy :: id ( "upfile_0" )); $file_input -> setFileDetector ( new LocalFileDetector ()); $file_input -> sendKeys ( "C: \\ Users \\ howdy \\ Documents \\ images \\ wallpaper1.jpg" ); //File path in remote automobile $web_driver -> findElement ( WebDriverBy :: id ( "readTermsOfUse" )) -> click (); $web_driver -> findElement ( WebDriverBy :: name ( "upload_button" )) -> submit (); slumber ( v ); $web_driver -> quit (); ?>
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.mutual.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait desired_cap = { 'browser' : 'Chrome' , 'browser_version' : '75.0' , 'bone' : 'Windows' , 'os_version' : '10' , 'name' : 'Bstack-[Python] Sample Test' } commuter = webdriver . Remote ( command_executor = 'http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) driver . become ( 'http://www.fileconvoy.com' ) driver . find_element_by_id ( 'upfile_0' ). send_keys ( 'C: \\ Users \\ how-do-you-do \\ Documents \\ images \\ wallpaper1.jpg' ) #File path in remote machine commuter . find_element_by_id ( 'readTermsOfUse' ). click () driver . find_element_by_name ( 'upload_button' ). submit () try : WebDriverWait ( driver , v ). until ( lambda 10 : x . find_element_by_id ( 'TopMessage' )) if ( commuter . find_element_by_id ( 'TopMessage' ). text == "Your file(s) accept been successfully uploaded." ): # Setting the status of exam every bit 'passed' or 'failed' based on the condition; if title of the web page starts with 'BrowserStack' driver . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"condition":"passed", "reason": "File uploaded!"}}' ) else : driver . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File upload failed"}}' ) except TimeoutException : commuter . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in 5 seconds"}}' ) commuter . quit ()
crave '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 [ 'proper name' ] = 'Bstack-[Cherry] 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 exercise | args | str = args . starting time . 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 \\ howdy \\ Documents \\ images \\ wallpaper1.jpg" ); #File path in remote motorcar driver . find_element ( :id , "readTermsOfUse" ). click ; driver . find_element ( :name , "upload_button" ). submit ; sleep ( five ) 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 ' => ' lxxx ', ' extra_capabilities ' => $extraCaps ); my $remote_fname = $driver -> upload_file (" C: \\ Users \\ howdy \\ Documents \\ images \\ wallpaper1.jpg "); #File path in remote automobile $driver -> get (' http://www.fileconvoy.com '); $commuter -> find_element (' upfile_0 ',' id ') -> send_keys ( $remote_fname ); $driver -> find_element (' readTermsOfUse ', ' id ') -> click (); $driver -> find_element (' upload_button ', ' name ') -> submit (); sleep forty ; $driver -> quit ();
import java.net.URL ; import java.util.List ; import java.util.Set ; import java.net.MalformedURLException ; import org.openqa.selenium.support.ui.WebDriverWait ; import org.openqa.selenium.By ; import org.openqa.selenium.WebElement ; import org.openqa.selenium.remote.DesiredCapabilities ; import org.openqa.selenium.remote.RemoteWebElement ; import org.openqa.selenium.support.ui.ExpectedConditions ; import io.appium.java_client.MobileBy ; import io.appium.java_client.ios.IOSDriver ; import io.appium.java_client.ios.IOSElement ; import org.apache.eatables.lang3.* ; public course Upload extends Thread { public static String userName = "YOUR_USERNAME" ; public static String accessKey = "YOUR_ACCESS_KEY" ; public static void main ( Cord args []) throws MalformedURLException , InterruptedException { DesiredCapabilities caps = new DesiredCapabilities (); caps . setCapability ( "device" , "iPhone 12 Pro Max" ); caps . setCapability ( "os_version" , "14" ); caps . setCapability ( "real_mobile" , "true" ); caps . setCapability ( "project" , "My First Project" ); caps . setCapability ( "build" , "My First Build" ); caps . setCapability ( "name" , "Bstack-[Java] Sample Examination" ); caps . setCapability ( "nativeWebTap" , "true" ); IOSDriver < IOSElement > commuter = new IOSDriver < IOSElement >( new URL ( "https://" + userName + ":" + accessKey + "@hub-cloud.browserstack.com/wd/hub" ), caps ); driver . become ( "https://the-internet.herokuapp.com/upload" ); Thread . sleep ( 5000 ); driver . findElement ( By . id ( "file-upload" )). click (); commuter . context ( "NATIVE_APP" ); driver . findElement ( By . proper noun ( "Photo Library" )). click (); Thread . sleep ( 5000 ); List list = driver . findElements ( By . className ( "XCUIElementTypeImage" )); (( IOSElement ) list . go ( 0 )). click (); Thread . sleep ( 5000 ); commuter . findElement ( By . name ( "Choose" )). click (); Set < String > contextName = driver . getContextHandles (); driver . context ( contextName . toArray ()[ 1 ]. toString ()); driver . findElement ( By . id ( "file-submit" )). click (); driver . quit (); } }
var wd = require ( ' wd ' ); // Input capabilities const capabilities = { ' device ' : ' iPhone 12 ' , ' realMobile ' : ' truthful ' , ' os_version ' : ' 14.0 ' , ' browserName ' : ' iPhone ' , ' proper name ' : ' BStack-[NodeJS] Sample Test ' , ' build ' : ' BStack Build Number 1 ' , " nativeWebTap " : truthful } async function runTestWithCaps () { let driver = wd . promiseRemote ( " http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub " ); await driver . init ( capabilities ); wait commuter . become ( " https://the-net.herokuapp.com/upload " ) await new Promise ( r => setTimeout ( r , 2000 )); chemical element = expect commuter . waitForElementById ( ' file-upload ' ) expect chemical element . click () wait driver . context ( ' NATIVE_APP ' ) element = await driver . waitForElementByName ( ' Photo Library ' ) wait element . click () await new Promise ( r => setTimeout ( r , 2000 )); element = await driver . elementsByClassName ( ' XCUIElementTypeImage ' ) await element [ 0 ]. click () await new Promise ( r => setTimeout ( r , 5000 )); element = expect driver . waitForElementByName ( ' Choose ' ) await element . click () look new Promise ( r => setTimeout ( r , 10000 )); contexts = expect driver . contexts (); wait driver . context ( contexts [ one ]) element = wait driver . waitForElementById ( " file-submit " ) await element . click () look driver . quit (); } runTestWithCaps ();
using System ; using Arrangement.Threading ; using OpenQA.Selenium ; using OpenQA.Selenium.Appium ; using OpenQA.Selenium.Appium.iOS ; namespace SampleTests { class UploadFile { static void Main ( cord [] args ) { AppiumDriver < IWebElement > driver ; AppiumOptions adequacy = new AppiumOptions (); adequacy . AddAdditionalCapability ( "browserName" , "iPhone" ); adequacy . AddAdditionalCapability ( "device" , "iPhone 12" ); adequacy . AddAdditionalCapability ( "realMobile" , "true" ); capability . AddAdditionalCapability ( "os_version" , "xiv" ); adequacy . AddAdditionalCapability ( "browserstack.debug" , "true" ); capability . AddAdditionalCapability ( "nativeWebTap" , "true" ); commuter = new IOSDriver < IWebElement >( new Uri ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub/" ), capability ); commuter . Navigate (). GoToUrl ( "https://the-cyberspace.herokuapp.com/upload" ); Thread . Sleep ( 10000 ); driver . FindElementById ( "file-upload" ). Click (); driver . Context = "NATIVE_APP" ; driver . FindElement ( By . Proper noun ( "Photo Library" )). Click (); Thread . Sleep ( 5000 ); IWebElement element = driver . FindElementsByClassName ( "XCUIElementTypeImage" )[ 0 ]; element . Click (); commuter . FindElementByName ( "Choose" ). Click (); driver . Context = driver . Contexts [ 1 ]; Panel . WriteLine ( commuter . Title ); commuter . FindElementById ( "file-submit" ). Click (); driver . Quit (); } } }
<?php require 'ios_upload.php' ; class AppAutomateTest extends BrowserStackTest { public role sendkeys ( $elem , $keys ) { $data = array ( 'value' => str_split ( $keys ), 'text' => $keys ); $url = $this -> getSessionUrl () -> descend ( 'element' ) -> descend ( $elem -> getId ()) -> descend ( 'value' ); $this -> getDriver () -> whorl ( 'POST' , $url , $data ); } public role testNativeApplication () { $this -> url ( "https://the-internet.herokuapp.com/upload" ); $this -> byId ( 'file-upload' ) -> click (); $this -> context ( 'NATIVE_APP' ); $this -> byName ( 'Photo Library' ) -> click (); sleep ( 5 ); $this -> elements ( $this -> using ( "class name" ) -> value ( "XCUIElementTypeImage" ))[ 0 ] -> click (); $this -> byName ( 'Choose' ) -> click (); $contexts = $this -> contexts (); $this -> context ( $contexts [ 1 ]); $this -> byId ( "file-submit" ) -> click (); } } ?>
from appium import webdriver from appium.webdriver.common.mobileby import MobileBy from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common import action_chains , keys from fourth dimension import sleep from selenium.webdriver.common.by import By desired_cap = { "device" : "iPhone 12 Pro max" , "os_version" : "14" , "real_mobile" : "truthful" , "browserstack.debug" : "true" , "nativeWebTap" : "truthful" } driver = webdriver . Remote ( command_executor = 'http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) driver . get ( "https://the-net.herokuapp.com/upload" ) slumber ( ten ) driver . find_element_by_id ( 'file-upload' ). click () driver . switch_to . context ( 'NATIVE_APP' ) driver . find_element_by_name ( 'Photo Library' ). click () sleep ( 5 ) elements = commuter . find_elements_by_class_name ( "XCUIElementTypeImage" ) elements [ 0 ]. click () # one represents second element from the list of 9 preloaded images and videos slumber ( 5 ) commuter . find_element_by_name ( "Choose" ). click () sleep ( 10 ) driver . switch_to . context ( driver . contexts [ 1 ]) driver . find_element_by_id ( "file-submit" ). click () driver . quit ()
crave 'rubygems' crave 'appium_lib' # Input capabilities caps = {} caps [ 'device' ] = 'iPhone 12' caps [ 'os_version' ] = 'fourteen' caps [ 'platformName' ] = 'iOS' caps [ 'realMobile' ] = 'true' caps [ 'name' ] = 'BStack-[Ruby-red] Sample Test' # test proper name caps [ 'build' ] = 'BStack Build Number 1' # CI/CD chore or build name caps [ 'nativeWebTap' ] = 'true' appium_driver = Appium :: Driver . new ({ 'caps' => caps , 'appium_lib' => { :server_url => "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" }}, true ) driver = appium_driver . start_driver driver . navigate . to "https://the-internet.herokuapp.com/upload" sleep ( 5 ) commuter . find_element ( xpath: "//*[@id='file-upload']" ). click driver . set_context ( 'NATIVE_APP' ) sleep ( 10 ) driver . find_element ( name: "Photo Library" ). click sleep ( 5 ) elements = commuter . find_elements ( :class_name , "XCUIElementTypeImage" ) elements [ 0 ]. click driver . find_element ( name: "Choose" ). click contexts = driver . available_contexts driver . set_context contexts [ 1 ] driver . find_element ( :id , "file-submit" ). click () commuter . quit ()
Uploading the files which are downloaded from the web in the same Automate session
To do this, you'll need the download file path. The file will be downloaded in these locations on the remote desktops:
C:\Documents and Settings\hello\Downloads
Uploading files that are downloaded in the same automate session is not possible in Android devices every bit of now, yet you can upload the file from your motorcar to the web application using the pushFile()
method as shown in Uploading files from your auto section
Uploading files that are downloaded in the same automate session tin be implemented on iOS devices using the following iOS snippets.
Through your exam script, you lot can instruct the remote browsers to:
- Navigate to a URL.
- Download a specific file.
- Then upload the file to the web app under test using
LocalFileDetector
orpushFile
andsendkeys
method.
import java.net.URL ; import java.util.List ; import java.util.Set ; import java.internet.MalformedURLException ; import org.openqa.selenium.back up.ui.WebDriverWait ; import org.openqa.selenium.Past ; import org.openqa.selenium.WebElement ; import org.openqa.selenium.remote.DesiredCapabilities ; import org.openqa.selenium.remote.RemoteWebElement ; import org.openqa.selenium.support.ui.ExpectedConditions ; import io.appium.java_client.MobileBy ; import io.appium.java_client.ios.IOSDriver ; import io.appium.java_client.ios.IOSElement ; import org.apache.eatables.lang3.* ; public class Upload extends Thread { public static String userName = "YOUR_USERNAME" ; public static Cord accessKey = "YOUR_ACCESS_KEY" ; public static void main ( String args []) throws MalformedURLException , InterruptedException { DesiredCapabilities caps = new DesiredCapabilities (); caps . setCapability ( "device" , "iPhone 12" ); caps . setCapability ( "os_version" , "xiv" ); caps . setCapability ( "real_mobile" , "true" ); caps . setCapability ( "project" , "My Start Project" ); caps . setCapability ( "build" , "My First Build" ); caps . setCapability ( "name" , "Bstack-[Java] Sample Test" ); caps . setCapability ( "nativeWebTap" , "true" ); IOSDriver < IOSElement > driver = new IOSDriver < IOSElement >( new URL ( "https://" + userName + ":" + accessKey + "@hub-cloud.browserstack.com/wd/hub" ), caps ); driver . get ( "https://support.staffbase.com/hc/en-the states/article_attachments/360009197031/username.csv" ); driver . context ( "NATIVE_APP" ); IOSElement download = ( IOSElement ) new WebDriverWait ( driver , 30 ). until ( ExpectedConditions . elementToBeClickable ( MobileBy . name ( "Download" ))); driver . findElementByName ( "Download" ). click (); Ready < String > contextNames = commuter . getContextHandles (); driver . context ( contextNames . toArray ()[ 1 ]. toString ()); commuter . become ( "https://the-internet.herokuapp.com/upload" ); Thread . sleep ( 5000 ); driver . findElement ( Past . id ( "file-upload" )). click (); driver . context ( "NATIVE_APP" ); driver . findElement ( By . name ( "Browse" )). click (); Thread . sleep ( 5000 ); driver . findElement ( Past . name ( "Recents" )). click (); Thread . sleep ( 5000 ); IOSElement elem = driver . findElement ( By . xpath ( "//XCUIElementTypeCollectionView" )); List list = elem . findElements ( By . xpath ( "//XCUIElementTypeCell" )); (( WebElement ) list . get ( 0 )). click (); Thread . sleep ( 5000 ); Gear up < Cord > contextName = commuter . getContextHandles (); driver . context ( contextName . toArray ()[ ane ]. toString ()); driver . findElement ( By . id ( "file-submit" )). click (); driver . quit (); } }
var wd = require ( ' wd ' ); // Input capabilities const capabilities = { ' device ' : ' iPhone 12 ' , ' realMobile ' : ' true ' , ' os_version ' : ' fourteen.0 ' , ' browserName ' : ' iPhone ' , ' name ' : ' BStack-[NodeJS] Sample Test ' , ' build ' : ' BStack Build Number 1 ' , " nativeWebTap " : true } async function runTestWithCaps () { let driver = wd . promiseRemote ( " http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub " ); await commuter . init ( capabilities ); wait driver . get ( " https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv " ); await new Promise ( r => setTimeout ( r , 2000 )); await driver . context ( ' NATIVE_APP ' ); let element = await driver . waitForElementByName ( ' Download ' ); await element . click () let contexts = await commuter . contexts (); await driver . context ( contexts [ 1 ]); await new Promise ( r => setTimeout ( r , 2000 )); expect driver . go ( " https://the-internet.herokuapp.com/upload " ) await new Hope ( r => setTimeout ( r , 2000 )); chemical element = look driver . waitForElementById ( ' file-upload ' ) wait element . click () look driver . context ( ' NATIVE_APP ' ) element = await driver . waitForElementByName ( ' Scan ' ) await element . click () await new Promise ( r => setTimeout ( r , 2000 )); chemical element = wait driver . waitForElementByName ( ' Recents ' ) await element . click () element = expect driver . waitForElementByXPath ( ' //XCUIElementTypeCollectionView ' ) wait new Hope ( r => setTimeout ( r , 2000 )); let elements = look element . elementsByXPath ( " //XCUIElementTypeCell " ) look elements [ 0 ]. click () contexts = await driver . contexts (); await commuter . context ( contexts [ i ]) chemical element = await driver . waitForElementById ( " file-submit " ) await element . click () look driver . quit (); } runTestWithCaps ();
using System ; using System.Threading ; using OpenQA.Selenium ; using OpenQA.Selenium.Appium ; using OpenQA.Selenium.Appium.iOS ; namespace SampleTests { class UploadFile { static void Master ( cord [] args ) { AppiumDriver < IWebElement > commuter ; AppiumOptions adequacy = new AppiumOptions (); capability . AddAdditionalCapability ( "browserName" , "iPhone" ); capability . AddAdditionalCapability ( "device" , "iPhone 12" ); adequacy . AddAdditionalCapability ( "realMobile" , "truthful" ); adequacy . AddAdditionalCapability ( "os_version" , "fourteen" ); capability . AddAdditionalCapability ( "browserstack.debug" , "true" ); capability . AddAdditionalCapability ( "nativeWebTap" , "true" ); commuter = new IOSDriver < IWebElement >( new Uri ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub/" ), adequacy ); commuter . Navigate (). GoToUrl ( "https://back up.staffbase.com/hc/en-u.s./article_attachments/360009197031/username.csv" ); driver . Context = "NATIVE_APP" ; commuter . FindElement ( Past . Proper noun ( "Download" )). Click (); driver . Context = driver . Contexts [ 1 ]; driver . Navigate (). GoToUrl ( "https://the-cyberspace.herokuapp.com/upload" ); Thread . Sleep ( 10000 ); driver . FindElementById ( "file-upload" ). Click (); driver . Context = "NATIVE_APP" ; driver . FindElement ( Past . Proper noun ( "Scan" )). Click (); driver . FindElement ( By . Name ( "Recents" )). Click (); IWebElement element = driver . FindElementByXPath ( "//XCUIElementTypeCollectionView" ); element . FindElements ( By . XPath ( "//XCUIElementTypeCell" ))[ 0 ]. Click (); driver . Context = driver . Contexts [ 1 ]; Panel . WriteLine ( driver . Title ); driver . FindElementById ( "file-submit" ). Click (); driver . Quit (); } } }
<?php require 'android_upload.php' ; class AppAutomateTest extends BrowserStackTest { public part sendkeys ( $elem , $keys ) { $data = array ( 'value' => str_split ( $keys ), 'text' => $keys ); $url = $this -> getSessionUrl () -> descend ( 'element' ) -> descend ( $elem -> getId ()) -> descend ( 'value' ); $this -> getDriver () -> coil ( 'POST' , $url , $data ); } public function testNativeApplication () { $this -> url ( "https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv" ); $this -> context ( 'NATIVE_APP' ); $this -> byName ( 'Download' ) -> click (); $contexts = $this -> contexts (); $this -> context ( $contexts [ ane ]); $this -> url ( "https://the-internet.herokuapp.com/upload" ); $this -> byId ( 'file-upload' ) -> click (); $this -> context ( 'NATIVE_APP' ); $this -> byName ( 'Browse' ) -> click (); $this -> byName ( 'Recents' ) -> click (); $this -> byXpath ( "//XCUIElementTypeCollectionView" ); $this -> elements ( $this -> using ( 'xpath' ) -> value ( '//XCUIElementTypeCell' ))[ 0 ] -> click (); $contexts = $this -> contexts (); $this -> context ( $contexts [ 1 ]); $this -> byId ( "file-submit" ) -> click (); } } ?>
from appium import webdriver from appium.webdriver.mutual.mobileby import MobileBy from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common import action_chains , keys from time import sleep from selenium.webdriver.common.past import By desired_cap = { "device" : "iPhone 12" , "os_version" : "xiv" , "real_mobile" : "truthful" , "browserstack.debug" : "true" , "nativeWebTap" : "truthful" } driver = webdriver . Remote ( command_executor = 'http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) # download file driver . get ( "https://support.staffbase.com/hc/en-u.s.a./article_attachments/360009197031/username.csv" ) # accept download driver . switch_to . context ( 'NATIVE_APP' ) commuter . find_element_by_name ( 'Download' ). click () commuter . switch_to . context ( driver . contexts [ 1 ]) # become to upload url driver . get ( "https://the-internet.herokuapp.com/upload" ) sleep ( 10 ) driver . find_element_by_id ( 'file-upload' ). click () driver . switch_to . context ( 'NATIVE_APP' ) driver . find_element_by_name ( 'Browse' ). click () driver . find_element_by_name ( 'Recents' ). click () element = commuter . find_element_by_xpath ( "//XCUIElementTypeCollectionView" ) impress ( type ( element )) element . find_elements_by_xpath ( "//XCUIElementTypeCell" )[ 0 ]. click () driver . switch_to . context ( driver . contexts [ i ]) driver . find_element_by_id ( "file-submit" ). click () driver . quit ()
require 'rubygems' require 'appium_lib' # Input capabilities caps = {} caps [ 'device' ] = 'iPhone 12' caps [ 'os_version' ] = '14' caps [ 'platformName' ] = 'iOS' caps [ 'realMobile' ] = 'true' caps [ 'proper noun' ] = 'BStack-[Blood-red] Sample Test' # test name caps [ 'build' ] = 'BStack Build Number ane' # CI/CD job or build name caps [ 'nativeWebTap' ] = 'true' appium_driver = Appium :: Driver . new ({ 'caps' => caps , 'appium_lib' => { :server_url => "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" }}, true ) driver = appium_driver . start_driver driver . navigate . to "https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv" commuter . set_context ( 'NATIVE_APP' ) driver . find_element ( xpath: "//*[@name='Download']" ). click contexts = driver . available_contexts driver . set_context contexts [ i ] driver . navigate . to "https://the-cyberspace.herokuapp.com/upload" sleep ( 5 ) driver . find_element ( xpath: "//*[@id='file-upload']" ). click driver . set_context ( 'NATIVE_APP' ) sleep ( 10 ) driver . find_element ( xpath: "//*[@name='Scan']" ). click sleep ( five ) driver . find_element ( xpath: "//*[@proper name='Recents']" ). click element = driver . find_element ( :xpath , "//XCUIElementTypeCollectionView" ) element . find_elements ( xpath: "//XCUIElementTypeCell" )[ 0 ]. click contexts = driver . available_contexts driver . set_context contexts [ 1 ] commuter . find_element ( :id , "file-submit" ). click () driver . quit ()
We're pitiful to hear that. Delight share your feedback so nosotros can do amend
Contact our Back up team for immediate help while nosotros work on improving our docs.
Nosotros're continuously improving our docs. We'd love to know what you liked
Is this page helping you?
Yes
No
We're lamentable to hear that. Delight share your feedback and so nosotros can do better
Contact our Support team for immediate help while we work on improving our docs.
Nosotros're continuously improving our docs. We'd honey to know what you lot liked
Thanks for your valuable feedback!
mcclemenshisherear97.blogspot.com
Source: https://www.browserstack.com/docs/automate/selenium/test-file-upload
0 Response to "Where to Upload a File to Browse on Safari"
Post a Comment