我正在尝试检测网页上的视频是否有音轨,但无法获取硒来加载视频。
以下是我正在做的事情:
const webdriver = require("selenium-webdriver");
const driver = new webdriver.Builder()
.forBrowser("firefox")
.usingServer(myGridURL)
.build();
const done = (result) => console.log(result);
driver.get(urlWithHTML5Video).then(() => {
driver.executeAsyncScript(() => {
const done = arguments[arguments.length - 1];
const video = document.getElementsByTagName("video")[0];
video.addEventListener("loadeddata", function() {
if (this.mozHasAudio > 0) {
done("audio track detected");
} else {
done("audio track not detected");
}
}, false);
video.load();
setTimeout(() => {
done("video did not load");
}, 10000);
});
}, [], done);
这总是打印“视频未加载”,即使我在等待几秒钟后检查状态,视频readyState
始终为0
,而mozHasAudio
始终为{{1} }。我也在Chrome中进行了尝试,虽然我得到一个false
值指示视频已加载,但我无法为readState
得到一个正值,该值应表明视频具有音轨(确实如此)。
这是我在Chrome上尝试过的方法:
webkitAudioDecodedByteCount
我正在使用共享的硒网格,该网格应访问Firefox和Chrome的真实(非无头)版本。我不确定这些机器的设置方式,因此可能需要向驱动程序发送其他参数以启用视频,但我无法确定这些参数和内容。
编辑
可以肯定的是,我拍了一张截图: