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

我需要做的是:
<代码>G 211而禁用该文件
以及它在代码中的外观:
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()
}所有字段已成功填充,但文件未附加。有什么想法吗?
发布于 2021-09-10 22:12:23
日志告诉您文件实际上是附加的。(在dev控制台中也要检查,输入元素将有一个非空文件数组)。
看起来,您需要触发一个更改或输入事件来告诉应用程序已经附加了一些内容。
cy.get('input[type=file]').attachFile(file)
.trigger('change')或
cy.get('input[type=file]').attachFile(file)
.trigger('input')如果失败,请尝试强制按钮单击。
cy.get(this.modal_proceedButton).click({force:true})发布于 2021-09-10 12:17:16
这是我用来上传文件的自定义命令,它从未让我失败:)
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
});
});
});我觉得这应该对你有用
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()
} 或者,您只需使用我给出的第一个示例作为自定义命令,然后执行:
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()
}https://stackoverflow.com/questions/69131311
复制相似问题