During browser automation, you might run into a scenario where you need to upload a test file, this is really easy to do with WebdriverIO. Let's take a look at an example below.
I'm using this test url for this example which is stored in the wdio.conf.js
file.
const path = require('path');
describe('Upload File', () => {
it('should be able to upload a file', () => {
// find selectors
const input = $('#file-upload');
const submitBtn = $('#file-submit');
// store test file path
const filePath = path.join(__dirname, '../data/chrome.png');
// use browser.uploadFile to upload the test file
const remoteFilePath = browser.uploadFile(filePath);
// access the test page
browser.url('/upload');
// set file path value in the input field
input.setValue(remoteFilePath);
submitBtn.click(); // click the submit button
// Add your assertion here
});
});
๐ This code is also available on GitHub for you to access and play around with.