我正在开发一些自动化功能,想要将 wav 或 mp3 文件发送到浏览器上的麦克风输入。我已经找到了 Chromium 的所有命令行开关,并且我在 Playwright 浏览器上下文中设置了“麦克风”权限。
UI 正确显示麦克风的“假输入设备”,以便该部分看起来正在工作。
我正在测试的 UI 有一个 [测试] 按钮可以开始从麦克风录音。有谁知道如何通过假麦克风传输我的 .wav 文件吗?
我尝试分配文件(通过使用 SetInputFilesAsync()),但这似乎不起作用。我以为我可以参加这个活动,但我仍然不知道如何传递文件。
有谁知道是否可以将音频文件发送到假输入设备? 预先感谢您!
我最近正在处理同样的任务,我希望我的代码示例可以帮助您。启动浏览器时您需要使用一些特定参数:
from playwright.sync_api import expect
from playwright.sync_api import Playwright
import time
def test_web_mic(playwright: Playwright):
browser = playwright.chromium.launch(headless=False,
args=[
# use Chrome's fake media streams
"--use-fake-device-for-media-stream",
# bypasses Chrome's cam/mic permissions dialog
"--use-fake-ui-for-media-stream",
# pass in your own custom media
"--use-file-for-fake-audio-capture=C:\\filepath\\audio.wav"]
)
context = browser.new_context()
context.grant_permissions(permissions=["microphone"])
page = context.new_page()
page.goto("https://mictests.com/")
page.get_by_role("button", name="Test my mic").click()
time.sleep(40)
page.get_by_role("button", name="Stop microphone").click()
page.pause()
context.close()
browser.close()