因此,我正在尝试使用Firefox Webdriver打开WebRTC流。 它在Chrome上运行正常,但该流无法在Firefox上开始播放。该页面已加载,但没有音频/视频。
Firefox可以在我的普通用户个人资料上正常播放流,但不能在Selenium中使用。
这是代码中的唯一区别:
def newFirefoxWindow(self):
print("Opening a firefox window")
profile = webdriver.FirefoxProfile()
profile.set_preference("media.navigator.permission.disabled", 1)
profile.set_preference("permissions.default.microphone", 1)
profile.set_preference("permissions.default.camera", 1)
profile.set_preference("media.block-autoplay-until-in-foreground", False)
profile.set_preference("media.autoplay.default", 1)
profile.set_preference("media.autoplay.allow-muted", False)
profile.set_preference("plugin.state.flash", 1)
profile.set_preference("webdriver_accept_untrusted_certs", True)
driver = webdriver.Firefox(firefox_profile=profile)
return driver
这在Chrome浏览器中有效:
def newChromeWindow(self):
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--test-type")
options.add_experimental_option("prefs", { \
"profile.default_content_setting_values.media_stream_mic": 1,
"profile.default_content_setting_values.media_stream_camera": 1,
"profile.default_content_setting_values.geolocation": 1,
"profile.default_content_setting_values.notifications": 1
}
driver = webdriver.Chrome(options=options)
return driver
有什么建议吗?我是否缺少Firefox设置?
答案 0 :(得分:0)
您需要通过将 media.autoplay.default
设置为 0
来允许 Firefox 中的媒体自动播放。以下是我在 WebdriverIO 中使用的 Firefox 功能:
'firefox': {
browserName: 'firefox',
'moz:firefoxOptions': {
prefs: {
"media.navigator.streams.fake": true,
"media.navigator.permission.disabled": true,
"media.autoplay.default": 0,
"media.volume_scale": "0.0"
}
}
}