Selenium автоматическая проверка звука - PullRequest
0 голосов
/ 26 февраля 2020

Этот тест ранее работал, но, похоже, это уже не так. DataArray возвращает массив нулей. Смешали немного javascript, чтобы получить аудио из mediaStream, вручную подтвердив, что mediaStream существует и этот звук действительно слышен с моей стороны. Вот текущий javascript используется. Поток Js является медиапотоком.

String script = "var callback = arguments[arguments.length-1];"
                + "var audioCtx = new window.AudioContext();"
                + "var analyser = audioCtx.createAnalyser();"
                + "var stream = "+streamJs+";"
                + "var source = audioCtx.createMediaStreamSource(stream);"
                + "source.connect(analyser);"
                + "analyser.fftSize = 256;"
                + "analyser.smoothingTimeConstant = 0;"
                + "setTimeout(() => {"
                + "var bufferLength = analyser.frequencyBinCount;"
                + "var dataArray = new Uint8Array(bufferLength);"
                + "analyser.getByteFrequencyData(dataArray);"
                + "audioCtx.close();"
                + "callback(Math.max(...dataArray));"
                + "}, 500);";
        browser.setAsyncScriptTimeout(5000);
        long maxFft = browser.executeAsyncJavascript(script);

        return maxFft > 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...