首页  >  问答  >  正文

使用Cypress方法选择文件时,处理DOM中没有输入元素的情况

<p>当点击上传按钮时,使用下面的方法打开文件浏览器。据我所知,除非你显式地将它附加到DOM元素上,否则不会向DOM添加任何元素。</p> <pre class="brush:js;toolbar:false;">const inputEl = document.createElement("input"); inputEl.type = "file"; inputEl.multiple = true; inputEl.click(); inputEl.onchange = (e) => { ... } </pre> <p>在Cypress中是否可以使用这种方法选择文件?<code>selectFile</code>需要<code>input</code>元素在DOM中,并且链接在其后。否则,我将不得不使用隐藏的input元素。</p>
P粉697408921P粉697408921432 天前440

全部回复(1)我来回复

  • P粉832490510

    P粉8324905102023-09-06 16:45:08

    已解决。在Cypress中无法做到。我使用了一个环境变量"DEVELOPMENT=1"来将输入元素附加到DOM中,但仅在测试期间。

    const inputEl = document.createElement("input");
    if (process.env.DEVELOPMENT) {
        document.getElementById("root").appendChild(inputEl);
    }
    inputEl.type = "file";
    inputEl.multiple = true;
    inputEl.click();
    inputEl.onchange = (e) => { ... }
    
    

    回复
    0
  • 取消回复