Selenium Ie Sending File to File Opens Upload Dialog
Test File Upload Functionality
Test your spider web app's file upload functionality on BrowserStack Automate.
Introduction
This certificate guides yous on how to test your web app'due south 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 | List |
---|---|
Supported Bone | All desktop and mobile Os |
Supported Browser | All (Chrome, Firefox, Safari, IE, Edge) |
Uploading files from your auto
You can send a file to remote browsers—direct 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.support.ui.ExpectedConditions ; import org.openqa.selenium.back up.ui.WebDriverWait ; public grade JavaSample { public static concluding String AUTOMATE_USERNAME = "YOUR_USERNAME" ; public static concluding String AUTOMATE_KEY = "YOUR_ACCESS_KEY" ; public static final Cord URL = "https://" + AUTOMATE_USERNAME + ":" + AUTOMATE_KEY + "@hub-deject.browserstack.com/wd/hub" ; public static void primary ( Cord [] 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" , "truthful" ); caps . setCapability ( "browserstack.debug" , "true" ); caps . setCapability ( "name" , "Bstack-[Java] Sample Test" ); RemoteWebDriver commuter = new RemoteWebDriver ( new URL ( URL ), caps ); commuter . 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 . name ( "upload_button" )). submit (); JavascriptExecutor jse = ( JavascriptExecutor ) driver ; try { WebDriverWait wait = new WebDriverWait ( driver , v ); wait . until ( ExpectedConditions . presenceOfElementLocated ( Past . id ( "TopMessage" ))); if ( commuter . 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\"}}" ); } } take hold of ( Exception eastward ) { jse . executeScript ( "browserstack_executor: {\"activity\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could non be uploaded in 5 seconds\"}}" ); } driver . quit (); } }
const webdriver = crave ( " selenium-webdriver " ); const remote = require ( " selenium-webdriver/remote " ); // Input capabilities const capabilities = { " browserName " : " Internet Explorer " , " browser_version " : " 11.0 " , " os " : " Windows " , " os_version " : " ten " , " proper noun " : " Bstack-[NodeJS] Upload Test " , " browserstack.sendKeys " : " truthful " , " browserstack.debug " : " true " , " browserstack.user " : " YOUR_USERNAME " , " browserstack.key " : " YOUR_ACCESS_KEY " }; const driver = new webdriver . Architect () . usingServer ( " https://hub-cloud.browserstack.com/wd/hub " ) . withCapabilities ( capabilities ) . build (); //This volition detect your local file commuter . setFileDetector ( new remote . FileDetector ()); ( async () => { await driver . get ( " http://www.fileconvoy.com " ); const filePathElement = await driver . findElement ( webdriver . Past . 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 . expect ( webdriver . until . elementIsVisible (( expect driver . findElement ( webdriver . By . id ( ' TopMessage ' )))), 5000 ); if (( await driver . findElement ( webdriver . By . id ( ' TopMessage ' )). getText ()). includes ( ' successfully uploaded ' )) { await driver . executeScript ( ' browserstack_executor: {"activeness": "setSessionStatus", "arguments": {"status":"passed","reason": "File upload successful"}} ' ); } else { look driver . executeScript ( ' browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}} ' ); } } grab ( e ) { look commuter . executeScript ( ' browserstack_executor: {"activeness": "setSessionStatus", "arguments": {"status":"failed","reason": "File could not be uploaded in time"}} ' ); } await driver . quit (); })();
using System ; using Organisation.Text ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Program { static void Master ( string [] args ) { Encoding . RegisterProvider ( CodePagesEncodingProvider . Case ); IWebDriver driver ; OpenQA . Selenium . IE . InternetExplorerOptions capability = new OpenQA . Selenium . IE . InternetExplorerOptions (); adequacy . AddAdditionalCapability ( "browser" , "IE" , true ); capability . AddAdditionalCapability ( "browser_version" , "11" , true ); capability . AddAdditionalCapability ( "bone" , "Windows" , true ); capability . AddAdditionalCapability ( "os_version" , "10" , true ); capability . AddAdditionalCapability ( "browserstack.sendKeys" , "true" , truthful ); capability . AddAdditionalCapability ( "browserstack.debug" , "truthful" , true ); capability . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , true ); capability . AddAdditionalCapability ( "browserstack.key" , "YOUR_ACCESS_KEY" , truthful ); capability . AddAdditionalCapability ( "name" , "Bstack-[C_sharp] Sample Test" , true ); commuter = new RemoteWebDriver ( new Uri ( "http://hub-cloud.browserstack.com/wd/hub/" ), capability ); commuter . Navigate (). GoToUrl ( "http://world wide web.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 car LocalFileDetector detector = new LocalFileDetector (); var allowsDetection = driver as IAllowsFileDetection ; if ( allowsDetection != null ) { 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: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}" ); } else { (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"activity\": \"setSessionStatus\", \"arguments\": {\"status\":\"failed\", \"reason\": \"File upload failed!\"}}" ); } commuter . 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" => "ten" , "browserstack.sendKeys" => "truthful" , "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 -> become ( "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.mutual.keys import Keys from selenium.webdriver.mutual.desired_capabilities import DesiredCapabilities from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait desired_cap = { 'browser' : 'Cyberspace Explorer' , 'browser_version' : 'xi.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' ) 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 () endeavor : WebDriverWait ( driver , 5 ). until ( lambda ten : ten . 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 every bit 'passed' or 'failed' based on the condition; if title of the web folio starts with 'BrowserStack' driver . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}' ) else : commuter . 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"}}' ) commuter . quit ()
require 'rubygems' require 'selenium-webdriver' # Input capabilities caps = Selenium :: WebDriver :: Remote :: Capabilities . new caps [ 'browser' ] = 'Cyberspace Explorer' caps [ 'browser_version' ] = '11.0' caps [ 'os' ] = 'Windows' caps [ 'os_version' ] = '10' caps [ 'proper name' ] = 'Bstack-[Ruby] Sample Exam' caps [ 'browserstack.sendKeys' ] = 'truthful' caps [ 'browserstack.debug' ] = 'true' caps [ "javascriptEnabled" ] = 'truthful' #Enabling the javascriptEnabled capability to execute javascript in the test script commuter = 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 ( 'certificate.getElementById("readTermsOfUse").click();' ) driver . find_element ( :proper name , "upload_button" ). submit sleep ( 5 ) driver . quit
utilise Selenium::Remote:: Driver ; #Input capabilities my $extraCaps = { " browser " => " Internet Explorer ", " browser_version " => " 11.0 ", " os " => " Windows ", " os_version " => " 10 ", " browserstack.sendKeys " => " truthful ", " browserstack.debug " => " true ", " proper noun " => " Bstack-[Perl] Sample Exam " }; my $login = " YOUR_USERNAME "; my $fundamental = " YOUR_ACCESS_KEY "; my $host = " $login : $cardinal \@ hub-cloud.browserstack.com "; my $driver = new Selenium::Remote:: Commuter (' remote_server_addr ' => $host , ' port ' => ' 80 ', ' extra_capabilities ' => $extraCaps ); my $remote_fname = $driver -> upload_file (" //local//file//path "); $driver -> go (' 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 ();
Note: Other browsers include Chrome, Firefox, Edge and Safari browsers.
Yous 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.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 terminal 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 ( "bone" , "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 . proper noun ( "upload_button" )). submit (); JavascriptExecutor jse = ( JavascriptExecutor ) driver ; try { WebDriverWait look = new WebDriverWait ( driver , v ); wait . until ( ExpectedConditions . presenceOfElementLocated ( By . id ( "TopMessage" ))); if ( commuter . 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\"}}" ); } } catch ( Exception e ) { jse . executeScript ( "browserstack_executor: {\"activity\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could non be uploaded in 5 seconds\"}}" ); } commuter . 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 ' , ' 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-deject.browserstack.com/wd/hub ' ) . withCapabilities ( capabilities ) . build (); //This volition find your local file await driver . setFileDetector ( new remote . FileDetector ); wait driver . get ( ' http://world wide web.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 hither await commuter . findElement ( webdriver . Past . id ( ' readTermsOfUse ' )). click (); await driver . findElement ( webdriver . By . id ( ' upload_button ' )). click (); look commuter . wait ( webdriver . until . elementLocated ( webdriver . By . id ( ' TopMessage ' )), 5000 ); if (( await driver . findElement ( webdriver . By . id ( ' TopMessage ' )). getText ()). includes ( ' successfully uploaded ' )) { expect driver . executeScript ( ' browserstack_executor: {"action": "setSessionStatus", "arguments": {"condition":"passed","reason": "File upload successful"}} ' ); } else { await driver . executeScript ( ' browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}} ' ); } look driver . quit (); } runTestWithCaps ();
using System ; using System.Text ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Program { static void Main ( cord [] args ) { Encoding . RegisterProvider ( CodePagesEncodingProvider . Case ); IWebDriver driver ; OpenQA . Selenium . Chrome . ChromeOptions adequacy = new OpenQA . Selenium . Chrome . ChromeOptions (); capability . AddAdditionalCapability ( "browser" , "Chrome" , true ); capability . AddAdditionalCapability ( "browser_version" , "75.0" , true ); capability . AddAdditionalCapability ( "bone" , "Windows" , true ); capability . AddAdditionalCapability ( "os_version" , "10" , true ); capability . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , true ); adequacy . AddAdditionalCapability ( "browserstack.key" , "YOUR_ACCESS_KEY" , truthful ); 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://world wide web.fileconvoy.com" ); IWebElement uploadFile = commuter . FindElement ( By . Id ( "upfile_0" )); Console . WriteLine ( commuter . Championship ); Cord path = "path//to//your//local//file" ; //File path in your local machine LocalFileDetector detector = new LocalFileDetector (); var allowsDetection = driver as IAllowsFileDetection ; if ( allowsDetection != goose egg ) { 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 ); Cord issue = driver . FindElement ( By . CssSelector ( "#TopMessage" )). Text ; if ( upshot . Contains ( "successfully uploaded" )) { (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"activity\": \"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" , "proper noun" => "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 ( 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.back up.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 () try : WebDriverWait ( driver , 5 ). until ( lambda x : x . find_element_by_id ( 'TopMessage' )) if ( commuter . find_element_by_id ( 'TopMessage' ). text == "Your file(south) 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' commuter . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}' ) else : driver . execute_script ( 'browserstack_executor: {"activeness": "setSessionStatus", "arguments": {"condition":"failed", "reason": "File upload failed"}}' ) except TimeoutException : driver . execute_script ( 'browserstack_executor: {"activeness": "setSessionStatus", "arguments": {"status":"failed", "reason": "File failed to upload in 5 seconds"}}' ) driver . 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 noun' ] = 'Bstack-[Ruby] Sample Examination' commuter = 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 . be? ( str ) end commuter . navigate . to "http://www.fileconvoy.com" commuter . find_element ( :id , "upfile_0" ). send_keys ( "//local//file//path" ); driver . find_element ( :id , "readTermsOfUse" ). click ; driver . find_element ( :name , "upload_button" ). submit ; slumber ( 5 ) driver . quit
apply Selenium::Remote:: Commuter ; #Input capabilities my $extraCaps = { " browser " => " Chrome ", " browser_version " => " 75.0 ", " os " => " Windows ", " os_version " => " 10 ", " name " => " Bstack-[Perl] Sample Exam " }; my $login = " YOUR_USERNAME "; my $cardinal = " YOUR_ACCESS_KEY "; my $host = " $login : $fundamental \@ hub-deject.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 ); $commuter -> find_element (' readTermsOfUse ', ' id ') -> click (); $commuter -> find_element (' upload_button ', ' name ') -> click (); sleep 40 ; $commuter -> quit ();
packet 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 coffee.net.URL ; public class UploadFile { public static final Cord USERNAME = "YOUR_USERNAME" ; public static final Cord AUTOMATE_KEY = "YOUR_ACCESS_KEY" ; public static final String URL = "http://" + USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub" ; public static void primary ( String [] args ) throws Exception { DesiredCapabilities caps = new DesiredCapabilities (); caps . setCapability ( "device" , "Samsung Milky way S9" ); caps . setCapability ( "os_version" , "eight.0" ); caps . setCapability ( "name" , "upload" ); caps . setCapability ( "build" , "Upload File" ); /**uploading files**/ AndroidDriver < WebElement > driver = new AndroidDriver < WebElement >( new URL ( URL ), caps ); driver . become ( "https://the-cyberspace.herokuapp.com/upload" ); driver . pushFile ( "/data/local/tmp/<file_name>" , new File ( "<local_file_path>" )); driver . findElement ( By . id ( "file-upload" )). sendKeys ( "/data/local/tmp/<file_name>" ); //Thread.sleep(2000); commuter . findElement ( Past . id ( "file-submit" )). submit (); driver . quit (); } }
var wd = require ( ' wd ' ); var fs = require ( ' fs ' ) var affirm = crave ( ' assert ' ); var asserters = wd . asserters ; desiredCaps = { ' browserstack.user ' : ' YOUR_USERNAME ' , ' browserstack.key ' : ' YOUR_ACCESS_KEY ' , ' build ' : ' Node Push File ' , ' name ' : ' upload file ' , ' device ' : ' Google Pixel three ' , ' browserstack.debug ' : truthful }; commuter = wd . promiseRemote ( " http://hub-cloud.browserstack.com/wd/hub " ); commuter . init ( desiredCaps ) . then ( part () { return commuter . get ( ' https://the-cyberspace.herokuapp.com/upload ' ); }) . and then ( function () { let data = fs . readFileSync ( ' <local_file_path> ' ) let convertedData = new Buffer . from ( data , ' base64 ' ) render commuter . pushFileToDevice ( ' /data/local/tmp/<file_name> ' , convertedData ); }) . then ( function () { return driver . elementById ( " file-upload " ); }) . and so ( function ( uploadFile ) { render uploadFile . sendKeys ( ' /information/local/tmp/<file_name> ' ); }) . and so ( role () { return driver . elementById ( " file-submit " ); }) . then ( part ( clickSubmit ) { render 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 System.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 up 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-deject.browserstack.com/wd/hub" ), caps ); driver . PushFile ( "/information/local/tmp/<file_name>" , new FileInfo ( "<local_file_path>" )); driver . Navigate (). GoToUrl ( "https://the-net.herokuapp.com/upload" ); commuter . FindElement ( By . Id ( "file-upload" )). SendKeys ( "/data/local/tmp/<file_name>" ); driver . FindElement ( Past . Id ( "file-submit" )). Submit (); driver . Quit (); } } }
<?php require 'android_upload.php' ; grade 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 -> 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 -> element ( $this -> using ( 'id' ) -> value ( 'file-submit' )) -> submit (); } } ?>
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 import fourth dimension userName = "YOUR_USERNAME" accessKey = "YOUR_ACCESS_KEY" desired_caps = { "os_version" : "8.0" , "device" : "Samsung Galaxy S9" , "name" : "examination" , "build" : "Python File Upload" } commuter = webdriver . Remote ( "https://" + userName + ":" + accessKey + "@hub-cloud.browserstack.com/wd/hub" , desired_caps ) driver . push_file ( "/data/local/tmp/<file_name>" , source_path = "<local_file_path>" ) driver . get ( "https://the-internet.herokuapp.com/upload" ) driver . find_element_by_id ( "file-upload" ). send_keys ( "/information/local/tmp/<file_name>" ) driver . find_element_by_id ( "file-submit" ). submit (); driver . quit ()
require 'rubygems' require 'appium_lib' caps = {} caps [ 'device' ] = 'Google Pixel iii' caps [ 'platformName' ] = 'Android' caps [ 'realMobile' ] = 'true' caps [ 'proper noun' ] = 'BStack-[Ruby] Sample Test' # test name caps [ 'build' ] = 'BStack Build Number one' # CI/CD job or build proper name appium_driver = Appium :: Driver . new ({ 'caps' => caps , 'appium_lib' => { :server_url => "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub" }}, true ) commuter = appium_driver . start_driver driver . push_file ( '/data/local/tmp/<file_name>' , ( File . read '<local_file_path>' )) driver . go ( "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 car's /data/local/tmp/<file_name>
directory just, and so upload file from BrowserStack remote motorcar's /data/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
equally 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 nowadays in remote_machine_file_path
.
Uploading file in iOS device is possible past downloading that file first and and then uploading it in the aforementioned automate session. For more details, refer the section for uploading the files which are downloaded in the aforementioned Automate session.
Note: You can upload whatsoever file format from your local organisation 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 besides true for remote instances spun up on BrowserStack. Following are the file paths you tin use:
Windows 10, 8.1, 8, 7
In the below remote file paths there are 2 \, the commencement \ is used equally an escape graphic symbol *Video* C:\\Users\\hi\\Documents\\video\\saper.avi C:\\Users\\howdy\\Documents\\video\\sample_mpeg4.mp4 C:\\Users\\hi\\Documents\\video\\sample_iTunes.mov C:\\Users\\hi\\Documents\\video\\sample_mpeg2.m2v *Images* C:\\Users\\hello\\Documents\\images\\wallpaper1.jpg C:\\Users\\howdy\\Documents\\images\\icon.png C:\\Users\\hello\\Documents\\images\\cartoon-animation.gif *Documents* C:\\Users\\how-do-you-do\\Documents\\documents\\xls-sample1.xls C:\\Users\\how-do-you-do\\Documents\\documents\\text-sample1.txt C:\\Users\\hello\\Documents\\documents\\pdf-sample1.pdf C:\\Users\\hullo\\Documents\\documents\\doc-sample1.docx *Audio* C:\\Users\\hello\\Documents\\audio\\first_noel.mp3 C:\\Users\\hullo\\Documents\\sound\\BachCPE_SonataAmin_1.wma C:\\Users\\hello\\Documents\\audio\\250Hz_44100Hz_16bit_05sec.wav *Zip files* C:\\Users\\hullo\\Documents\\4KBzipFile.zip C:\\Users\\hullo\\Documents\\1MBzipFile.naught
Windows XP
C:\\Documents\ and\ Settings\\hello\\url.txt
You 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/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/medico-sample1.docx *Sound* /Users/test1/Documents/sound/first_noel.mp3 /Users/test1/Documents/audio/BachCPE_SonataAmin_1.wma /Users/test1/Documents/sound/250Hz_44100Hz_16bit_05sec.wav *Zip files* /Users/test1/Documents/4KBzipFile.cipher /Users/test1/Documents/1MBzipFile.zip
You can choose any of the files from the above list for macOS operating systems, in the code snippet given below.
Uploading preloaded files in Android is not possible as of at present, nevertheless you tin upload the file from your machine to the spider web awarding using the pushFile()
method as shown in Uploading files from your machine section
Uploading preloaded files in iOS can be implemented using the post-obit iOS snippets.
You can use those files to examination your web app's file upload functionality using Selenium'southward 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.back up.ui.WebDriverWait ; public class JavaSample { public static final Cord 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 chief ( String [] args ) throws Exception { DesiredCapabilities caps = new DesiredCapabilities (); caps . setCapability ( "browser" , "internet explorer" ); caps . setCapability ( "os" , "windows" ); caps . setCapability ( "browser_version" , "xi.0" ); caps . setCapability ( "os_version" , "10" ); caps . setCapability ( "browserstack.sendKeys" , "truthful" ); caps . setCapability ( "browserstack.debug" , "truthful" ); 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\\hullo\\Documents\\sound\\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: {\"activeness\": \"setSessionStatus\", \"arguments\": {\"status\": \"passed\", \"reason\": \"File uploaded successfully\"}}" ); } else { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File upload failed\"}}" ); } } catch ( Exception due east ) { jse . executeScript ( "browserstack_executor: {\"activeness\": \"setSessionStatus\", \"arguments\": {\"condition\": \"failed\", \"reason\": \"File could not be uploaded in 5 seconds\"}}" ); } commuter . quit (); } }
const webdriver = require ( " selenium-webdriver " ); const remote = require ( " selenium-webdriver/remote " ); // Input capabilities const capabilities = { " browserName " : " Internet Explorer " , " browser_version " : " xi.0 " , " os " : " Windows " , " os_version " : " ten " , " proper noun " : " Bstack-[NodeJS] Upload Test " , " browserstack.sendKeys " : " true " , " browserstack.debug " : " true " , " browserstack.user " : " YOUR_USERNAME " , " browserstack.key " : " YOUR_ACCESS_KEY " }; const commuter = 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 () => { await driver . go ( " http://www.fileconvoy.com " ); const filePathElement = await driver . findElement ( webdriver . Past . id ( " upfile_0 " )); await filePathElement . sendKeys ( " C: \\ Users \\ hello \\ Documents \\ sound \\ first_noel.mp3 " ); await ( await commuter . findElement ( webdriver . By . id ( " readTermsOfUse " ))). click (); await ( look driver . findElement ( webdriver . By . name ( " upload_button " ))). click (); attempt { await driver . wait ( webdriver . until . elementIsVisible (( expect commuter . 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 fourth dimension"}} ' ); } look driver . quit (); })();
using System ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Program { static void Main ( string [] args ) { IWebDriver commuter ; OpenQA . Selenium . IE . InternetExplorerOptions capability = new OpenQA . Selenium . IE . InternetExplorerOptions (); adequacy . AddAdditionalCapability ( "browser" , "IE" , true ); adequacy . AddAdditionalCapability ( "browser_version" , "11" , true ); capability . AddAdditionalCapability ( "os" , "Windows" , truthful ); capability . AddAdditionalCapability ( "os_version" , "10" , true ); adequacy . AddAdditionalCapability ( "browserstack.sendKeys" , "true" , true ); capability . AddAdditionalCapability ( "browserstack.debug" , "true" , truthful ); capability . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , truthful ); adequacy . AddAdditionalCapability ( "browserstack.key" , "YOUR_ACCESS_KEY" , truthful ); capability . AddAdditionalCapability ( "proper noun" , "Bstack-[C_sharp] Sample Exam" , true ); commuter = 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 ( commuter . Title ); Cord path = "C:\\Users\\howdy\\Documents\\audio\\first_noel.mp3" ; //File path in remote auto LocalFileDetector detector = new LocalFileDetector (); var allowsDetection = driver equally IAllowsFileDetection ; if ( allowsDetection != null ) { allowsDetection . FileDetector = new LocalFileDetector (); } uploadFile . SendKeys ( path ); commuter . FindElement ( By . Id ( "readTermsOfUse" )). Click (); commuter . FindElement ( By . Id ( "upload_button" )). Click (); commuter . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromSeconds ( five ); if ( driver . FindElement ( By . CssSelector ( "#TopMessage" )). Text . Contains ( "successfully uploaded" )) { (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"activity\": \"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 ; apply Facebook\WebDriver\WebDriverBy ; use Facebook\WebDriver\Remote\LocalFileDetector ; $caps = array ( "browser" => "Net Explorer" , "browser_version" => "11.0" , "os" => "Windows" , "os_version" => "10" , "browserstack.sendKeys" => "true" , "proper name" => "Bstack-[Php] Sample Exam" , "browserstack.debug" => "truthful" ); $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 \\ hullo \\ 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 (); slumber ( 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' : 'Cyberspace 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 auto driver . find_element_by_id ( 'readTermsOfUse' ). click () driver . find_element_by_name ( 'upload_button' ). submit () endeavour : WebDriverWait ( driver , v ). until ( lambda x : ten . find_element_by_id ( 'TopMessage' )) if ( commuter . find_element_by_id ( 'TopMessage' ). text == "Your file(s) have been successfully uploaded." ): # Setting the status of examination as 'passed' or 'failed' based on the status; 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 : driver . execute_script ( 'browserstack_executor: {"activeness": "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-[Reddish] Sample Test' caps [ 'browserstack.sendKeys' ] = 'truthful' 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 practice | args | str = args . first . to_s str if File . exist? ( str ) end commuter . navigate . to "http://world wide web.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 ( v ) driver . quit
utilize Selenium::Remote:: Driver ; #Input capabilities my $extraCaps = { " browser " => " Cyberspace 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 $commuter -> get (' http://www.fileconvoy.com '); $commuter -> find_element (' upfile_0 ',' id ') -> send_keys ( $remote_fname ); $commuter -> find_element (' readTermsOfUse ', ' id ') -> click (); $driver -> find_element (' upload_button ', ' proper noun ') -> submit (); sleep 40 ; $driver -> quit ();
Notation: Other browsers include Chrome, Firefox, Border and Safari browsers.
Y'all can use those files to test your spider web app's 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 ; import java.net.URL ; public class JavaSample { public static last Cord 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 ( 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 Examination" ); RemoteWebDriver driver = new RemoteWebDriver ( new URL ( URL ), caps ); driver . setFileDetector ( new LocalFileDetector ()); driver . get ( "http://www.fileconvoy.com/" ); commuter . findElement ( By . id ( "upfile_0" )). sendKeys ( "C:\\Users\\hullo\\Documents\\images\\wallpaper1.jpg" ); //File path in remote auto driver . findElement ( Past . id ( "readTermsOfUse" )). click (); driver . findElement ( By . name ( "upload_button" )). submit (); JavascriptExecutor jse = ( JavascriptExecutor ) driver ; try { WebDriverWait look = 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\": {\"condition\": \"passed\", \"reason\": \"File uploaded successfully\"}}" ); } else { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"condition\": \"failed\", \"reason\": \"File upload failed\"}}" ); } } catch ( Exception e ) { jse . executeScript ( "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\": \"failed\", \"reason\": \"File could not exist uploaded in v 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 ' : ' Os X ' , ' os_version ' : ' Big Sur ' , ' proper name ' : ' Safari test file upload ' , // examination name ' build ' : ' File upload testing ' // Build name } async part runTestWithCaps () { let commuter = new webdriver . Architect () . usingServer ( ' http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub ' ) . withCapabilities ( capabilities ) . build (); //This volition detect your local file wait 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 motorcar is given here. See the sample file paths for different remote machines in the documentation page look driver . findElement ( webdriver . By . id ( ' readTermsOfUse ' )). click (); await commuter . findElement ( webdriver . By . id ( ' upload_button ' )). click (); expect 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: {"activeness": "setSessionStatus", "arguments": {"status":"failed","reason": "File upload failed"}} ' ); } await driver . quit (); } runTestWithCaps ();
using Organisation ; using OpenQA.Selenium ; using OpenQA.Selenium.Remote ; namespace SeleniumTest { class Programme { static void Main ( string [] args ) { IWebDriver driver ; OpenQA . Selenium . Chrome . ChromeOptions capability = new OpenQA . Selenium . Chrome . ChromeOptions (); adequacy . AddAdditionalCapability ( "browser" , "Chrome" , true ); capability . AddAdditionalCapability ( "browser_version" , "latest" , true ); adequacy . AddAdditionalCapability ( "os" , "Windows" , truthful ); capability . AddAdditionalCapability ( "os_version" , "x" , truthful ); adequacy . AddAdditionalCapability ( "browserstack.user" , "YOUR_USERNAME" , truthful ); capability . AddAdditionalCapability ( "browserstack.fundamental" , "YOUR_ACCESS_KEY" , true ); adequacy . AddAdditionalCapability ( "proper noun" , "Bstack-[C_sharp] Sample Test" , true ); commuter = new RemoteWebDriver ( new Uri ( "http://hub-deject.browserstack.com/wd/hub/" ), capability ); driver . Navigate (). GoToUrl ( "http://www.fileconvoy.com" ); IWebElement uploadFile = commuter . FindElement ( By . Id ( "upfile_0" )); Console . WriteLine ( commuter . Championship ); 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 issue = driver . FindElement ( Past . CssSelector ( "#TopMessage" )). Text ; if ( consequence . Contains ( "successfully uploaded" )) { (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"activity\": \"setSessionStatus\", \"arguments\": {\"status\":\"passed\", \"reason\": \"File uploaded successfully!\"}}" ); } else { (( IJavaScriptExecutor ) driver ). ExecuteScript ( "browserstack_executor: {\"activity\": \"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 ; utilize Facebook\WebDriver\Remote\LocalFileDetector ; $caps = array ( "browser" => "Chrome" , "browser_version" => "75.0" , "bone" => "Windows" , "os_version" => "ten" , "name" => "Bstack-[Php] Sample Exam" ); $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 \\ howdy \\ 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.mutual.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 name' : 'Bstack-[Python] Sample Examination' } 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 ( 'C: \\ Users \\ hello \\ Documents \\ images \\ wallpaper1.jpg' ) #File path in remote motorcar driver . find_element_by_id ( 'readTermsOfUse' ). click () commuter . find_element_by_name ( 'upload_button' ). submit () try : WebDriverWait ( commuter , 5 ). until ( lambda 10 : ten . 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' commuter . execute_script ( 'browserstack_executor: {"activity": "setSessionStatus", "arguments": {"status":"passed", "reason": "File uploaded!"}}' ) else : driver . execute_script ( 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"condition":"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"}}' ) driver . 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' ] = 'ten' caps [ 'name' ] = 'Bstack-[Cerise] Sample Exam' driver = Selenium :: WebDriver . for ( :remote , :url => "http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub" , :desired_capabilities => caps ) commuter . file_detector = lambda do | args | str = args . commencement . to_s str if File . be? ( str ) end driver . navigate . to "http://world wide web.fileconvoy.com" driver . find_element ( :id , "upfile_0" ). send_keys ( "C: \\ Users \\ how-do-you-do \\ Documents \\ images \\ wallpaper1.jpg" ); #File path in remote auto 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 ", " bone " => " 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 -> become (' http://www.fileconvoy.com '); $commuter -> find_element (' upfile_0 ',' id ') -> send_keys ( $remote_fname ); $commuter -> find_element (' readTermsOfUse ', ' id ') -> click (); $driver -> find_element (' upload_button ', ' name ') -> submit (); sleep forty ; $commuter -> quit ();
import java.net.URL ; import java.util.List ; import java.util.Set ; import java.net.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.commons.lang3.* ; public course Upload extends Thread { public static String userName = "YOUR_USERNAME" ; public static Cord accessKey = "YOUR_ACCESS_KEY" ; public static void master ( 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 Get-go Project" ); caps . setCapability ( "build" , "My Offset Build" ); caps . setCapability ( "name" , "Bstack-[Coffee] Sample Test" ); caps . setCapability ( "nativeWebTap" , "true" ); IOSDriver < IOSElement > commuter = new IOSDriver < IOSElement >( new URL ( "https://" + userName + ":" + accessKey + "@hub-cloud.browserstack.com/wd/hub" ), caps ); driver . get ( "https://the-net.herokuapp.com/upload" ); Thread . sleep ( 5000 ); driver . findElement ( By . id ( "file-upload" )). click (); commuter . context ( "NATIVE_APP" ); commuter . findElement ( By . name ( "Photograph Library" )). click (); Thread . sleep ( 5000 ); List listing = driver . findElements ( Past . className ( "XCUIElementTypeImage" )); (( IOSElement ) list . get ( 0 )). click (); Thread . slumber ( 5000 ); driver . findElement ( By . proper noun ( "Cull" )). click (); Set < Cord > 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 ' : ' true ' , ' os_version ' : ' 14.0 ' , ' browserName ' : ' iPhone ' , ' proper name ' : ' BStack-[NodeJS] Sample Examination ' , ' build ' : ' BStack Build Number 1 ' , " nativeWebTap " : true } async function runTestWithCaps () { let commuter = wd . promiseRemote ( " http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub " ); await commuter . init ( capabilities ); expect driver . get ( " https://the-internet.herokuapp.com/upload " ) await new Hope ( r => setTimeout ( r , 2000 )); element = await driver . waitForElementById ( ' file-upload ' ) await element . click () await commuter . context ( ' NATIVE_APP ' ) element = expect commuter . waitForElementByName ( ' Photo Library ' ) await element . click () look new Promise ( r => setTimeout ( r , 2000 )); element = await driver . elementsByClassName ( ' XCUIElementTypeImage ' ) await element [ 0 ]. click () await new Promise ( r => setTimeout ( r , 5000 )); element = wait driver . waitForElementByName ( ' Choose ' ) look chemical element . click () await new Promise ( r => setTimeout ( r , 10000 )); contexts = expect driver . contexts (); await driver . context ( contexts [ i ]) chemical element = await driver . waitForElementById ( " file-submit " ) await element . click () look commuter . 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 Main ( string [] args ) { AppiumDriver < IWebElement > driver ; AppiumOptions adequacy = new AppiumOptions (); capability . AddAdditionalCapability ( "browserName" , "iPhone" ); capability . AddAdditionalCapability ( "device" , "iPhone 12" ); capability . AddAdditionalCapability ( "realMobile" , "truthful" ); 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-cloud.browserstack.com/wd/hub/" ), adequacy ); driver . Navigate (). GoToUrl ( "https://the-internet.herokuapp.com/upload" ); Thread . Sleep ( 10000 ); driver . FindElementById ( "file-upload" ). Click (); commuter . Context = "NATIVE_APP" ; driver . FindElement ( By . Proper noun ( "Photo Library" )). Click (); Thread . Sleep ( 5000 ); IWebElement element = commuter . FindElementsByClassName ( "XCUIElementTypeImage" )[ 0 ]; element . Click (); driver . FindElementByName ( "Choose" ). Click (); driver . Context = driver . Contexts [ 1 ]; Console . WriteLine ( driver . Championship ); driver . FindElementById ( "file-submit" ). Click (); driver . Quit (); } } }
<?php require 'ios_upload.php' ; form AppAutomateTest extends BrowserStackTest { public function sendkeys ( $elem , $keys ) { $data = assortment ( 'value' => str_split ( $keys ), 'text' => $keys ); $url = $this -> getSessionUrl () -> descend ( 'element' ) -> descend ( $elem -> getId ()) -> descend ( 'value' ); $this -> getDriver () -> curl ( 'POST' , $url , $data ); } public office 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.mutual.mobileby import MobileBy from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.back up import expected_conditions as EC from selenium.webdriver.common import action_chains , keys from fourth dimension import sleep from selenium.webdriver.common.past import By desired_cap = { "device" : "iPhone 12 Pro max" , "os_version" : "14" , "real_mobile" : "true" , "browserstack.debug" : "true" , "nativeWebTap" : "true" } commuter = webdriver . Remote ( command_executor = 'http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) driver . get ( "https://the-cyberspace.herokuapp.com/upload" ) sleep ( 10 ) driver . find_element_by_id ( 'file-upload' ). click () driver . switch_to . context ( 'NATIVE_APP' ) driver . find_element_by_name ( 'Photo Library' ). click () sleep ( five ) elements = driver . find_elements_by_class_name ( "XCUIElementTypeImage" ) elements [ 0 ]. click () # 1 represents 2d element from the list of 9 preloaded images and videos sleep ( five ) driver . find_element_by_name ( "Choose" ). click () slumber ( ten ) commuter . switch_to . context ( commuter . contexts [ 1 ]) commuter . find_element_by_id ( "file-submit" ). click () driver . quit ()
crave 'rubygems' require 'appium_lib' # Input capabilities caps = {} caps [ 'device' ] = 'iPhone 12' caps [ 'os_version' ] = '14' caps [ 'platformName' ] = 'iOS' caps [ 'realMobile' ] = 'truthful' caps [ 'name' ] = 'BStack-[Ruby] Sample Examination' # exam 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-cyberspace.herokuapp.com/upload" sleep ( 5 ) driver . find_element ( xpath: "//*[@id='file-upload']" ). click driver . set_context ( 'NATIVE_APP' ) sleep ( 10 ) commuter . find_element ( name: "Photograph Library" ). click sleep ( v ) elements = driver . find_elements ( :class_name , "XCUIElementTypeImage" ) elements [ 0 ]. click commuter . find_element ( proper noun: "Cull" ). click contexts = driver . available_contexts driver . set_context contexts [ 1 ] driver . find_element ( :id , "file-submit" ). click () driver . quit ()
Uploading the files which are downloaded from the web in the same Automate session
To do this, y'all'll need the download file path. The file volition exist 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 as of now, however yous tin upload the file from your motorcar to the web awarding using the pushFile()
method equally shown in Uploading files from your machine section
Uploading files that are downloaded in the same automate session can be implemented on iOS devices using the following iOS snippets.
Through your exam script, you 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.Listing ; import java.util.Set ; import java.net.MalformedURLException ; import org.openqa.selenium.support.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.commons.lang3.* ; public class Upload extends Thread { public static Cord userName = "YOUR_USERNAME" ; public static String 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" , "14" ); caps . setCapability ( "real_mobile" , "truthful" ); caps . setCapability ( "project" , "My First Projection" ); 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 ); commuter . get ( "https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv" ); driver . context ( "NATIVE_APP" ); IOSElement download = ( IOSElement ) new WebDriverWait ( driver , xxx ). until ( ExpectedConditions . elementToBeClickable ( MobileBy . proper noun ( "Download" ))); driver . findElementByName ( "Download" ). click (); Set up < String > contextNames = driver . getContextHandles (); driver . context ( contextNames . toArray ()[ i ]. toString ()); commuter . go ( "https://the-net.herokuapp.com/upload" ); Thread . slumber ( 5000 ); driver . findElement ( By . id ( "file-upload" )). click (); driver . context ( "NATIVE_APP" ); driver . findElement ( Past . proper name ( "Browse" )). click (); Thread . sleep ( 5000 ); driver . findElement ( By . name ( "Recents" )). click (); Thread . slumber ( 5000 ); IOSElement elem = driver . findElement ( By . xpath ( "//XCUIElementTypeCollectionView" )); List list = elem . findElements ( Past . xpath ( "//XCUIElementTypeCell" )); (( WebElement ) list . get ( 0 )). click (); Thread . sleep ( 5000 ); Set < String > contextName = driver . getContextHandles (); commuter . context ( contextName . toArray ()[ 1 ]. toString ()); driver . findElement ( By . id ( "file-submit" )). click (); commuter . quit (); } }
var wd = require ( ' wd ' ); // Input capabilities const capabilities = { ' device ' : ' iPhone 12 ' , ' realMobile ' : ' true ' , ' os_version ' : ' 14.0 ' , ' browserName ' : ' iPhone ' , ' proper noun ' : ' BStack-[NodeJS] Sample Test ' , ' build ' : ' BStack Build Number 1 ' , " nativeWebTap " : true } async function runTestWithCaps () { let commuter = wd . promiseRemote ( " http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-cloud.browserstack.com/wd/hub " ); await driver . init ( capabilities ); await commuter . get ( " https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv " ); look new Promise ( r => setTimeout ( r , 2000 )); await driver . context ( ' NATIVE_APP ' ); let element = await driver . waitForElementByName ( ' Download ' ); look element . click () let contexts = wait driver . contexts (); await driver . context ( contexts [ 1 ]); await new Promise ( r => setTimeout ( r , 2000 )); await driver . get ( " https://the-net.herokuapp.com/upload " ) await new Promise ( r => setTimeout ( r , 2000 )); element = await commuter . waitForElementById ( ' file-upload ' ) await chemical element . click () await commuter . context ( ' NATIVE_APP ' ) element = wait driver . waitForElementByName ( ' Browse ' ) await chemical element . click () await new Promise ( r => setTimeout ( r , 2000 )); element = await driver . waitForElementByName ( ' Recents ' ) expect element . click () element = await driver . waitForElementByXPath ( ' //XCUIElementTypeCollectionView ' ) await new Promise ( r => setTimeout ( r , 2000 )); let elements = wait chemical element . elementsByXPath ( " //XCUIElementTypeCell " ) await elements [ 0 ]. click () contexts = await commuter . contexts (); await driver . context ( contexts [ 1 ]) element = await driver . waitForElementById ( " file-submit " ) wait 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 Principal ( string [] args ) { AppiumDriver < IWebElement > driver ; AppiumOptions capability = new AppiumOptions (); capability . AddAdditionalCapability ( "browserName" , "iPhone" ); capability . AddAdditionalCapability ( "device" , "iPhone 12" ); capability . AddAdditionalCapability ( "realMobile" , "true" ); capability . AddAdditionalCapability ( "os_version" , "14" ); capability . AddAdditionalCapability ( "browserstack.debug" , "true" ); capability . AddAdditionalCapability ( "nativeWebTap" , "true" ); driver = new IOSDriver < IWebElement >( new Uri ( "https://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub/" ), capability ); driver . Navigate (). GoToUrl ( "https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv" ); commuter . Context = "NATIVE_APP" ; driver . FindElement ( By . Name ( "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" ; commuter . FindElement ( By . Name ( "Browse" )). Click (); driver . FindElement ( By . Name ( "Recents" )). Click (); IWebElement chemical element = driver . FindElementByXPath ( "//XCUIElementTypeCollectionView" ); element . FindElements ( By . XPath ( "//XCUIElementTypeCell" ))[ 0 ]. Click (); driver . Context = driver . Contexts [ i ]; Console . WriteLine ( driver . Title ); driver . FindElementById ( "file-submit" ). Click (); driver . Quit (); } } }
<?php crave 'android_upload.php' ; grade AppAutomateTest extends BrowserStackTest { public function sendkeys ( $elem , $keys ) { $information = array ( 'value' => str_split ( $keys ), 'text' => $keys ); $url = $this -> getSessionUrl () -> descend ( 'element' ) -> descend ( $elem -> getId ()) -> descend ( 'value' ); $this -> getDriver () -> scroll ( 'POST' , $url , $data ); } public part 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 [ 1 ]); $this -> url ( "https://the-net.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.common.mobileby import MobileBy from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.back up import expected_conditions equally EC from selenium.webdriver.mutual import action_chains , keys from fourth dimension import sleep from selenium.webdriver.common.by import Past desired_cap = { "device" : "iPhone 12" , "os_version" : "14" , "real_mobile" : "true" , "browserstack.debug" : "truthful" , "nativeWebTap" : "true" } driver = webdriver . Remote ( command_executor = 'http://YOUR_USERNAME:YOUR_ACCESS_KEY@hub-deject.browserstack.com/wd/hub' , desired_capabilities = desired_cap ) # download file driver . get ( "https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv" ) # accept download driver . switch_to . context ( 'NATIVE_APP' ) driver . find_element_by_name ( 'Download' ). click () driver . switch_to . context ( driver . contexts [ 1 ]) # get to upload url commuter . get ( "https://the-net.herokuapp.com/upload" ) slumber ( x ) driver . find_element_by_id ( 'file-upload' ). click () driver . switch_to . context ( 'NATIVE_APP' ) driver . find_element_by_name ( 'Scan' ). click () driver . find_element_by_name ( 'Recents' ). click () element = driver . find_element_by_xpath ( "//XCUIElementTypeCollectionView" ) print ( type ( element )) element . find_elements_by_xpath ( "//XCUIElementTypeCell" )[ 0 ]. click () driver . switch_to . context ( driver . contexts [ 1 ]) 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' ] = 'truthful' caps [ 'name' ] = 'BStack-[Crimson] Sample Test' # test proper 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" }}, truthful ) driver = appium_driver . start_driver commuter . navigate . to "https://support.staffbase.com/hc/en-us/article_attachments/360009197031/username.csv" driver . set_context ( 'NATIVE_APP' ) commuter . find_element ( xpath: "//*[@name='Download']" ). click contexts = driver . available_contexts driver . set_context contexts [ one ] driver . navigate . to "https://the-internet.herokuapp.com/upload" slumber ( 5 ) driver . find_element ( xpath: "//*[@id='file-upload']" ). click driver . set_context ( 'NATIVE_APP' ) slumber ( x ) commuter . find_element ( xpath: "//*[@name='Browse']" ). click sleep ( five ) driver . find_element ( xpath: "//*[@name='Recents']" ). click chemical element = driver . find_element ( :xpath , "//XCUIElementTypeCollectionView" ) chemical element . find_elements ( xpath: "//XCUIElementTypeCell" )[ 0 ]. click contexts = driver . available_contexts driver . set_context contexts [ 1 ] driver . find_element ( :id , "file-submit" ). click () driver . quit ()
Nosotros're deplorable to hear that. Please share your feedback then we can practise better
Contact our Support team for immediate help while nosotros work on improving our docs.
Nosotros're continuously improving our docs. Nosotros'd beloved to know what you liked
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 squad for firsthand help while we work on improving our docs.
We're continuously improving our docs. Nosotros'd love to know what yous liked
Thank you for your valuable feedback!
Source: https://www.browserstack.com/docs/automate/selenium/test-file-upload
Postar um comentário for "Selenium Ie Sending File to File Opens Upload Dialog"