headless=true的模式下是无法播放声音的,只有设置false才能实现
两种方式
1、可以通过修改浏览器启动参数来允许自动播放声音:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
# 配置浏览器参数以允许自动播放
browser = p.chromium.launch(
args=[
'--autoplay-policy=no-user-gesture-required', # 允许自动播放
'--disable-features=PreloadMediaEngagementData,AutoplayIgnoreWebAudio' # 禁用相关限制
],
headless=False # 非无头模式,便于测试
)
page = browser.new_page()
page.goto('https://example.com') # 替换为你要测试的网站
# 等待音频元素加载完成
page.wait_for_selector('audio')
# 点击页面以触发用户交互(有些网站可能仍然需要)
page.click('body')
# 等待一段时间以观察效果
page.wait_for_timeout(10000)
browser.close()
2、使用 JavaScript 执行播放from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto('https://example.com') # 替换为包含音频的网站
# 等待音频元素加载
audio_selector = 'audio'
page.wait_for_selector(audio_selector)
# 执行JavaScript播放音频
page.evaluate('''() => {
const audioElements = document.querySelectorAll('audio');
audioElements.forEach(audio => {
audio.play().catch(e => console.log('播放失败:', e));
});
}''')
# 等待一段时间以观察效果
page.wait_for_timeout(10000)
browser.close()
网友回复
如何让ai帮我自动在小红书或抖音上自动根据需求截流与潜在客户聊天拉客?
如果用go编写一个在virtualbox中启动的简单操作系统?
go如何搭建一个零信任网络?
如何用python实现一个公网代理访问软件?
如何用go实现一个公网代理访问软件?
如何用python实现一个内网穿透打洞程序,实现内网的80端口暴露到公网上可以访问?
如何用go实现一个内网穿透打洞程序,实现内网的80端口暴露到公网上可以访问?
何为Shadowsocks 代理?
python如何实现类似php的opendir目录相互隔离的fastcgi多租户虚拟空间?
nodejs如何实现类似php的opendir目录相互隔离的fastcgi多租户虚拟空间?


