Mat*_*urg 8 python firefox selenium selenium-webdriver
也许不容易做到,但我希望能够在Selenium中加载一个网页并测试flash或html5是否自动播放音频.
理论上,当用户访问我的网站时,他们可以看到视频播放但没有音频(正确的方式)有时音频会自动播放视频,这是我不想要的.
我想知道是否有办法检测是否有任何音频是通过python和firefox播放的?我的内部测试将加载页面并进行相当多的硒检查以确保一切都很好.我想做的是添加一个测试,如果播放音频并标记它,也会检查python或selenium.
有任何想法吗?
我有类似的问题.我通过网络处理大量音频.我必须自动检查音频质量下降,音频播放等.我无法找到一个库来帮助我使用Groovy或Ruby(我没有检查Python),所以我调用了一个已安装的程序(sox)如果听到或不听音频,它会检查实时.
这是我的常规调用/脚本:
def audioCheck = "sox -t coreaudio Soundflower /Users/me/project/record.wav silence 1 0.1 1% 1 .1 1%".execute()
audioCheck.waitFor()
println "EXIT VALUE FOR SOX IS: ${audioCheck.exitValue()}"
if(audioCheck.exitValue() == 0){
// some stuff would happen now, if exit code is 0
}
Run Code Online (Sandbox Code Playgroud)
关于Core Audio和"Soundflower"
sox调用使用-t coreaudio指定音频板(在Linux上你可能会使用alsa而不是'coreaudio' - coreauduio是OSX音频接口.)"Soundflower"参数是我在Soundflower创建的频道.这对我来说非常重要(我正在进行音频质量检查.)例如,如果您使用默认频道,例如alsa默认频道或coreaudio默认频道,它会拿起你的麦克风...所以如果这个人在你旁边打喷嚏...它破坏了测试.
通过使用虚拟音频通道(如OSX上的Soundflower),您可以将所有音频设置为"音出",然后在该频道上运行sox命令...并且您只会收听系统音频从虚拟频道出来.
您可以使用默认频道(但是当它听到房间里的其他噪音时它会结束.)
我使用groovy任务运行该代码异步...所以代码包含在以下内容中:
def listener = task { ... my script above ... }
Run Code Online (Sandbox Code Playgroud)
由于它是异步监听,因此不会阻止其余的测试.
Sox命令
我使用的实际sox实时命令来自这个人的视频(检查它,因为他使用了一些不同的参数):
https://www.youtube.com/watch?v=Q5ntlKE0ze4
扩展它
通过能够自动记录通过浏览器播放的音频,然后使用PESQ算法确定录制的音频与正在播放的原始音频的接近程度,我进一步推动了它.如果您对此感兴趣,请随时查看我的帖子:
http://sdet.us/webrtc-audio-quality-automation-with-pesq/
Python PCAP Scraping
也许与你正在做的事情无关,但我也玩过使用Pyshark库重建数据包捕获的音频...它更复杂,也许更脆弱.但如果感兴趣,这是我的实现:
http://sdet.us/python-pcap-parsing-audio-from-sip-call/
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |