上传图像[赛普拉斯]

时间:2019-11-26 17:08:34

标签: automation image-uploading cypress

我正在尝试将本地文件中的jpeg图片上传到在我的工作中开发的网页上。关键是,我们需要单击页面以打开文件资源管理器,然后选择图像(或将其拖放到可能被单击的相同位置)。 Here is a picture from the web page

我不知道该怎么做,我正在尝试一些我在“ https://medium.com/@chrisbautistaaa/adding-image-fixtures-in-cypress-a88787daac9c”中看到的代码。但是不行。我实际上不知道它是如何工作的,有人可以帮助我吗?

Here is my code

在@brendan的帮助下,我能够通过找到某个元素下“隐藏”的输入来解决该问题。但是,在此之前,我尝试了拖放操作,赛普拉斯向我返回了一个错误(尽管上传成功)。上传之后,上下文立即被重新渲染,柏树告诉我:  and cypress told me that

除了成功使用输入元素外,我想知道如何解决该错误,是否有可能在内部做一些事情以使柏树忽略或等待直到元素重新恢复正常? 赛普拉斯建议的解决方案:

Solutions suggested by cypress

1 个答案:

答案 0 :(得分:1)

我们正在使用cypress-file-upload

这是我们代码中的一个示例:

cy.fixture(fileName).then(fileContent => {
  cy.get(selectors.dropZoneInput).upload(
    { fileContent, fileName, mimeType: "application/pdf" },
    { subjectType: "drag-n-drop" }
  );
});

出于您的目的,我认为这会起作用:

cy.fixture(imagePath).then(fileContent => {
  cy.get(".upload-box").first().upload(
    { fileContent, fileName, mimeType: "image/jpeg" },
    { subjectType: "drag-n-drop" }
  );
});