Heim  >  Fragen und Antworten  >  Hauptteil

Behandeln Sie den Fall, dass im DOM keine Eingabeelemente vorhanden sind, wenn Sie Dateien mit der Cypress-Methode auswählen

<p>Wenn Sie auf die Schaltfläche „Hochladen“ klicken, verwenden Sie die unten stehende Methode, um den Dateibrowser zu öffnen. Soweit ich weiß, wird dem DOM kein Element hinzugefügt, es sei denn, Sie hängen es explizit an das DOM-Element an. </p> <pre class="brush:js;toolbar:false;">const inputEl = document.createElement("input"); inputEl.type = "Datei"; inputEl.multiple = true; inputEl.click(); inputEl.onchange = (e) => </pre> <p>Ist es möglich, Dateien mit dieser Methode in Cypress auszuwählen? Für <code>selectFile</code> muss sich das Element <code>input</code> im DOM befinden und darauf folgen. Ansonsten muss ich versteckte Eingabeelemente verwenden. </p>
P粉697408921P粉697408921381 Tage vor408

Antworte allen(1)Ich werde antworten

  • 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) => { ... }
    
    

    Antwort
    0
  • StornierenAntwort