搜尋

首頁  >  問答  >  主體

使用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粉697408921447 天前454

全部回覆(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
  • 取消回覆