首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cypress- file -上载不将文件附加到其中一个字段。

cypress- file -上载不将文件附加到其中一个字段。
EN

Stack Overflow用户
提问于 2021-09-10 11:08:15
回答 2查看 1.5K关注 0票数 1

我使用cypress-file-upload将文件附加到输入字段。在不同的地方(在不同的模态窗口中,在我的例子中),对所有这些输入使用相同的方法。但是在一个地方,由于某种原因,文件不附加,在执行步骤中,文件是附加的,但在模式中没有显示(红色区域)。

我需要做的是:

  1. 打开模式
  2. 附加文件
  3. 填充所有字段
  4. 单击提交按钮,但由于失败未附加

<代码>G 211而禁用该文件

以及它在代码中的外观:

代码语言:javascript
运行
复制
addUpdates(name, family, version, notes, file) {
  cy.get(this.topMenu_addButton).click()
  cy.get('.upload-field').should('be.visible')
  cy.get('input[type=file]').attachFile(file)
  cy.get(this.modal_field).should('be.visible').fill(name)
  cy.get(this.modal_familyField).fill(family)
  cy.get(this.modal_versionField).fill(version)
  cy.get(this.modal_notesField).fill(notes)
  cy.get(this.modal_proceedButton).should('be.enabled').click()
}

所有字段已成功填充,但文件未附加。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-10 22:12:23

日志告诉您文件实际上是附加的。(在dev控制台中也要检查,输入元素将有一个非空文件数组)。

看起来,您需要触发一个更改或输入事件来告诉应用程序已经附加了一些内容。

代码语言:javascript
运行
复制
cy.get('input[type=file]').attachFile(file)
  .trigger('change')

代码语言:javascript
运行
复制
cy.get('input[type=file]').attachFile(file)
  .trigger('input')

如果失败,请尝试强制按钮单击。

代码语言:javascript
运行
复制
cy.get(this.modal_proceedButton).click({force:true})
票数 5
EN

Stack Overflow用户

发布于 2021-09-10 12:17:16

这是我用来上传文件的自定义命令,它从未让我失败:)

代码语言:javascript
运行
复制
Cypress.Commands.add("UploadFile", function () {
  cy.fixture("somefile", "binary")
  .then(Cypress.Blob.binaryStringToBlob)
  .then((fileContent) => {
  cy.get('someelement').attachFile({
    fileContent,
    filePath: "somefile",
    fileName: "somefile",
  do more stuff here
   });
  });
 });

我觉得这应该对你有用

代码语言:javascript
运行
复制
addUpdates(name, family, version, notes, file) {
 cy.get(this.topMenu_addButton).click()
 cy.get('.upload-field').should('be.visible')
  cy.fixture("somefile", "binary")
  .then(Cypress.Blob.binaryStringToBlob)
  .then((fileContent) => {
  cy.get('input[type=file]').attachFile({
    fileContent,
    filePath: "somefile",
    fileName: "somefile",
 cy.get(this.modal_field).should('be.visible').fill(name)
 cy.get(this.modal_familyField).fill(family)
 cy.get(this.modal_versionField).fill(version)
 cy.get(this.modal_notesField).fill(notes)
 cy.get(this.modal_proceedButton).should('be.enabled').click()
} 

或者,您只需使用我给出的第一个示例作为自定义命令,然后执行:

代码语言:javascript
运行
复制
addUpdates(name, family, version, notes, file) {
  cy.get(this.topMenu_addButton).click()
  cy.get('.upload-field').should('be.visible')
  cy.UploadFile();
  cy.get(this.modal_field).should('be.visible').fill(name)
  cy.get(this.modal_familyField).fill(family)
  cy.get(this.modal_versionField).fill(version)
  cy.get(this.modal_notesField).fill(notes)
  cy.get(this.modal_proceedButton).should('be.enabled').click()
 }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69131311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档