Behandeln Sie den Fall, dass im DOM keine Eingabeelemente vorhanden sind, wenn Sie Dateien mit der Cypress-Methode auswählen
P粉697408921
P粉697408921 2023-09-05 22:32:49
0
1
443
<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粉697408921
P粉697408921

Antworte allen(1)
P粉832490510

已解决。在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) => { ... }

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage