我有一个应用程序,使使用p—fileUpload,我写了一个Cypress测试.

我想也许我可以使用selectFile方法来实现这个目标—但这并没有成功.

下面是我在html中实现的p—fileUpload:

<p-fileUpload
    name="files"
    [url]="url"
    accept="text/xml"
    [multiple]="true"
    (onBeforeUpload)="onBeforeUpload($event)"
    (onUpload)="onUpload($event.files, $event.originalEvent.body)"
    (onError)="onError($event.files, $event.originalEvent ? $event.originalEvent.body : $event.error)"
    [attr.data-cy]="'fileUpload'"
  ></p-fileUpload>

下面是我try 在Cypress测试中上传一个文件:

cy.get('[data-cy="fileUpload"]').should('be.visible')
        .then($upload => {

            cy.get('[data-cy="fileUpload"]').selectFile('cypress/fixtures/myfile.xlsx');

});

这是我得到的错误:

cy.selectFile() can only be called on an <input type="file"> or a <label for="fileInput"> pointing to or containing a file input, but received the element:
<p-fileupload _ngcontent-dan-c234="" name="files" accept="text/xml" class="p-element" ng-reflect-name="files" ng-reflect-accept="text/xml" ng-reflect-url="transaction/api/v2/upload/xml?" ng-reflect-multiple="true" data-cy="fileUpload">...</p-fileupload>

有什么建议吗?

谢谢

推荐答案

try drag-drop选项.

cy.get('[data-cy="fileUpload"]')
  .selectFile('cypress/fixtures/myfile.xlsx', {action: 'drag-drop'})

使用此选项时,Cypress在<p-fileUpload>的子元素中搜索它将附加文件的<input>.

判断dev—tools/Elements选项卡中的HTML,您应该能够在main元素下面找到一个<input>,例如(省略了一些属性)

<p-fileupload>
  <div class="p-fileupload">
    <div class=" p-fileupload-buttonbar">
      <span class="p-button">
        <input type="file" />

Html相关问答推荐

当在双引号|Angular .html文件中使用时,Pretier会将单引号字符替换为&;Quot;

Angular 滑块问题

为什么在添加文本时网格区域会调整大小?

我无法使用背景图像css,因为我在VS代码中将照片放在不同的文件夹中

如何在HTML中适当地为单选按钮网格添加标签?

如何生成随机字符串的字母数字字符集长度到html跨度?

如何用背景色填充边框半径创建的间隙

浮动Div在CSS中未按预期工作

如何使 CSS 网格项目像 Flexbox 项目一样匹配父级的高度

为什么我不能覆盖 div 的样式?

为什么我的 html 对话框在 React 中没有渲染在我的内容之上?

带有数据 URI 的音频在 Chrome 中失败

在Firefox中使用keySplines时,SVG: <animateMotion>不起作用

发送带有图像的Google文档作为HTML格式的邮件正文不再起作用

如何将图像移动到父容器的右侧?

需要禁用聚焦输入的工具提示(jquery)

在一行中对齐两个不同形式的按钮

我正在使用 react-router-dom 并创建了一个固定的导航栏,它在每个网页上不断改变大小,我不知道为什么

我如何使用 HTML 和 CSS 在我的下拉菜单中获得这种类型的样式

如何将内容从侧边栏的底部移动到右侧?