Skip to content
Advertisement

Cypress- SelectFile() Not working as expected in Chrome

Cypress Version: 9.5.0
Chrome Version: 98

Ive been trying to use cy.selectFile() to upload a file in Cypress test. The following code looks as such:

cy.get('#new-project-photo', { force: true }).selectFile({
    contents: 'cypress/fixtures/media/003_StreetView.jpg',
    fileName: 'image01.jpg',
    mimeType: 'image/jpeg',
}, { force: true });

The HTML of the File Input looks as such:

<input multiple="multiple" id="new-project-photo" 
data-file-type="image" data-max-size="10485760" data-callback="true" 
type="file" name="file" 
data-url="https://api.cloudinary.com/v1_1/pxd/auto/upload" 
data-form-data="{&quot;allowed_formats&quot;:&quot;jpg,gif,png,jpeg&quot;,&quot;callback&quot;:&quot;https://kf.pxs-staging.com/cloudinary_cors.html&quot;,&quot;timestamp&quot;:1645550617,&quot;signature&quot;:&quot;47dd768ebfad68ebce2c8c5bc9b1da08777f69f9&quot;,&quot;api_key&quot;:&quot;421553125867598&quot;}" 
data-cloudinary-field="photos[image]" class="cloudinary-fileupload">

The code when running the test through FF runs as expected and the file is uploaded with a 200 on the post request. However when running the test through Chrome. I get a 400 with an error of {"error":{"message":"Missing required parameter - file"}} (Coming from server). The upload does work as expected when manually doing the upload in chrome.

The URL it sends the POST to is a different domain then the base url of the tested site. Could this be the cause? Im also curious about having this in the config: "chromeWebSecurity": false, Which is needed to load the site properly in chrome.

Ive also tried wrapping the image in a fixture first, same issue.

Anyone know what i might be doing wrong and why it only seems to work in FF?

Advertisement

Answer

For anyone who comes across this issue, make sure you have the latest version. As of today (v9.5.1) seems to have fixed the issue i was having. Its adding images now with no issues. Chrome is also on version 99

Thanks everyone

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement