【问题标题】:Uploading image [Cypress]上传图片 [赛普拉斯]
【发布时间】:2020-03-22 04:12:30
【问题描述】:

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

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

Here is my code

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

除了输入元素的成功之外,我想知道如何解决这个错误,是否可以在内部对 cypress 做一些事情以忽略或等到元素重新渲染恢复正常? cypress 建议的解决方案:

【问题讨论】:

    标签: automation image-uploading cypress


    【解决方案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" }
      );
    });
    

    【讨论】:

    • 谢谢!我能够通过找到一个“隐藏”在元素下的输入来解决这个问题。但是,在此之前我尝试了拖放,并且在成功上传后立即重新渲染元素并且 cypress 告诉我:i.stack.imgur.com/vPFTN.png 如何解决这个错误,也许是 cypress 内部忽略的东西还是等到元素重新渲染恢复正常? cypress 建议的解决方案:i.stack.imgur.com/BgNI5.png
    • 按照他们的建议,您可以使用 cy.wait() 等待触发重新渲染的 XHR(如果有),然后再次使用 cy.get() 获取新元素
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2023-01-12
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多