Is there a way to efficiently upload multiple files using Protractor?

Currently, I am using webdriver.WebElement.sendKeys and Path to upload a single file using the following code:

var path = require('path'),
  uploadInput = element(by.css("input[type=file]")),
  fileToUpload = "../test_image/download.jpeg",
  absolutePath = path.resolve(__dirname, fileToUpload);

  uploadInput.sendKeys(absolutePath);

The code above works well for uploading one file. However, now I need to figure out how to pass multiple files for testing purposes. Any suggestions on how to achieve this?

Answer №1

Even with its advanced features, Selenium still lacks support for uploading multiple files simultaneously:

However, as suggested in this Stack Overflow thread on uploading multiple files using WebDriver, a workaround for Chrome involves concatenating file paths using a new-line character:

uploader.sendKeys(pathToFile1 + "\n" + pathToFile2);

For more information, refer to:

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Angular URL containing dynamic path parameters

I am looking to update the Angular URL to /jobs/id. I have written the code below, but I'm unsure if it will work: $location.path("/JobHire/jobs/"+response.data.id); How should I set up the route configuration? Currently, I have it configured like t ...

Is it possible to export files from Flash to CreateJS via the command line?

Is there a method to automatically run the createjs toolkit for Flash tool from the command line? I have multiple components that I need to export in bulk. Is it possible to do this in a batch process? ...

Counting words with JavaScript without using an input tag is a useful skill

Is there a way to count the words in a text using only p and span tags, without using input tags? How can this be achieved? <span class="word" id="word">Words Number</span> <p class="any" id="any"> ...

Authenticating the identity of the client application - the client is currently within the browser

I have a PHP backend (although it's not really important) and a Javascript client that runs in the browser. Here is how the application operates: The user accesses a URL and receives raw templates for rendering data An Ajax GET query is sent to the ...

Obtaining a roster of file names with the help of the Glob

I'm attempting to gather a list of file names in node, however I believe I am encountering a scoping problem. var files = []; glob(options.JSX_DEST + "/*.js", function (er, files) { files = files.map(function(match) { return path.relati ...

Issue with Vue.js Typescript when setting a debounced function

Upon debouncing a function in my Vue.js application, I encountered the following error message: Type 'DebouncedFunc<(queryParams: QueryParams, page?: number) => Promise<void>>' is not assignable to type '(queryParams: QueryPa ...

Tips for resizing images to fit the parent container dimensions

After uploading an image, I needed to adjust its dimensions. The original image was 450x700, while the parent container was 400x400. Using 'object-fit' helped fit the image to its parent container while maintaining its aspect ratio. However, I r ...

Data loss may occur when transferring information to Cipher.update with DES encryption in Node.js

Listen up: So, I've got this Buffer of data set up like this: [39 bytes of header] + [body] + [padding] (according to my calculations). When I save it to a file, I can easily identify the structure and everything appears to be in order. Next, I nee ...

Creating a fresh CSS class and utilizing its properties in JavaScript is the task at hand

Whenever I define a css class and attempt to access its member from JavaScript, the result always ends up being undefined. Where could my mistake possibly lie? function myFunction() { var x = document.getElementById("myId").style.myMember; document. ...

Themeing for dark mode using styled components in Next JS

I have been searching for an answer to this question, but haven't found one yet Currently, I am using styled components with next js along with the use-dark-mode hook to manage theme changes and detection The global styles switch seems to work fine ...

Adjust the output number in a JavaScript BMI calculator to the nearest whole number when using the

Hey there, I'm currently working on a beginner project and could use some assistance. My project involves creating a basic BMI calculator using metric units, but I seem to be encountering issues with rounding numbers. Here is a snippet of my code: var ...

React-querybuilder experiencing issues with validator functionality

While utilizing the react-querybuilder, I have encountered an issue with field validation not functioning correctly. Upon reviewing this StackBlitz, it appears that when clicking on Rule and checking all fields, there are no errors present. export const fi ...

What is the most effective way to accurately identify the mobile platform of a user using JavaScript?

I need to determine whether a user has accessed the application through a browser on Android or iOS. The company would like to display slightly different content depending on the platform. While I am aware that navigator.platform can be used for this pur ...

How can Angular 2 effectively keep track of changes in HTTP service subscriptions? Calling the method directly may result in

After making a call to the authentication service method that checks the validity of the username and password, as well as providing an authentication token, I encountered an issue. When attempting to display the value obtained from calling the getAuthData ...

Encountering an "Unknown Provider" issue while trying to inject a provider from another module into a

Having trouble with two modules, module A and module B, that are interdependent. Module A is currently in the process of being bootstrapped. I need to inject a provider from module A into the config block of module B. Unfortunately, I keep getting an erro ...

Using JQuery, identify cells located in the first column of a table excluding those in the header section

In the past, I had code that looked like this: $(elem).parents('li').find(...) I used this code when elem was an item in a list, making it easy to reference all items in the list. But now, I've made some changes and decided to use a table ...

What steps can I take to resolve the issue of the "self signed certificate in certificate chain" error while trying to install plugins on VS Code?

After setting up VS Code on my Windows 7 x64 system, I encountered an issue when trying to install plugins - I kept receiving the error message "self signed certificate in certificate chain". Despite setting "http.proxyStrictSSL": false, I was still unable ...

Selenium: Ensuring buttons are visible yet inactive before clicking

Within the page lies a table that requires filtering, triggering a pop-up box. Directly below this popup resides a button. Immediately after applying the filter, it is essential to click this button. What method of waiting should be employed in this scenar ...

Exploring the functionality of arrays within Selenium IDE

Recently delving into Selenium IDE, I am a beginner and looking for guidance. The challenge at hand: How can I access values from an array generated by execute script | var array1 = document.getElementsByClassName("Post"); return array1; | array1 Initi ...

What is the best way to modify the attributes of an object within the state?

Although I've been working with the React framework for a few weeks now, I still find myself surprised by new challenges on a regular basis. Currently, I am focused on developing the login/game lobby/server lobby for a group project game. The concept ...