Saya mengikuti jawaban ini dan sepertinya itu yang saya butuhkan.

Masalahnya dia sudah tahu nama file dan saya sedang melakukan tes e2e untuk mengunduh file, tetapi nama file tergantung pada waktu saat ini (bahkan dengan milidetik) jadi saya tidak begitu tahu namanya (atau akan sangat sulit untuk mendapatkan).

Saya pikir saya kehilangan sesuatu yang sangat sederhana di sini, tetapi saya memikirkan dua cara:

  1. Buat ulang nama file (dengan fungsi yang sama yang mengembalikan nama file ini) dan mulailah memeriksa keberadaan file dengan nama itu, jika tidak ada, pindah ke milidetik berikutnya hingga saya menemukan nama yang tepat.
  2. Periksa folder unduhan untuk keberadaan file "apa saja", jika saya menemukannya di sana maka itu adalah file yang saya unduh (untuk kasus ini saya tidak tahu cara memeriksa seluruh folder di busur derajat).

Semoga kalian bisa membantu dengan alternatif ini (saya ingin bantuan dengan poin 2) atau mungkin memberi saya yang lebih baik. Terima kasih

9
eLRuLL 11 Desember 2016, 06:44

1 menjawab

Jawaban Terbaik

Saya akhirnya mengikuti saran @ alecxe dan inilah jawaban saya:

var glob = require("glob");

browser.driver.wait(function () {
    var filesArray = glob.sync(filePattern);
    if (typeof filesArray !== 'undefined' && filesArray.length > 0) {
        // this check is necessary because `glob.sync` can return
        // an empty list, which will be considered as a valid output
        // making the wait to end.
        return filesArray;
    }
}, timeout).then(function (filesArray) {
    var filename = filesArray[0];
    // now we have the filename and can do whatever we want
});
7
alecxe 19 Desember 2016, 23:55