我想做的

测试一个需要剧作家使用麦克风访问的网站

问题

出现问题的弹出窗口,似乎忽略了假定授予的权限.可以手动授予权限,但这似乎违背了自动化的精神.

enter image description here

我试过的

with sync_playwright() as p:

    browser = p.chromium.launch(headless=False)
    context = browser.new_context(permissions=['microphone'])
...

由于某些原因,通过上下文授予权限不起作用.许可弹出窗口仍然会出现.

我还试着用剧作家的录音脚本录制了一段穿行,但没有授予麦克风权限.

推荐答案

您缺少一些命令行flags,这些命令行告诉chrome模拟使用麦克风.给这个样品打一针.

from playwright.sync_api import sync_playwright


def run(playwright):
    chromium = playwright.chromium
    browser = chromium.launch(headless=False, args=['--use-fake-device-for-media-stream', '--use-fake-ui-for-media-stream'])
    context = browser.new_context()
    context.grant_permissions(permissions=['microphone'])
    page = context.new_page()
    page.goto("https://permission.site/")
    page.click('#microphone')
    page.pause()
    # other actions...
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

Python相关问答推荐

使用from_pandas将GeDataFrame转换为polars失败,ArrowType错误:未传递numpy. dype对象

拆分pandas列并创建包含这些拆分值计数的新列

如何让 turtle 通过点击和拖动来绘制?

Pythind 11无法弄清楚如何访问tuple元素

Python 3.12中的通用[T]类方法隐式类型检索

DataFrame groupby函数从列返回数组而不是值

PywinAuto在Windows 11上引发了Memory错误,但在Windows 10上未引发

如何避免Chained when/then分配中的Mypy不兼容类型警告?

管道冻结和管道卸载

我们可以为Flask模型中的id字段主键设置默认uuid吗

我如何根据前一个连续数字改变一串数字?

实现自定义QWidgets作为QTimeEdit的弹出窗口

Django—cte给出:QuerySet对象没有属性with_cte''''

如何在Great Table中处理inf和nans

Python Mercury离线安装

如何在验证文本列表时使正则表达式无序?

有没有办法让Re.Sub报告它所做的每一次替换?

提取最内层嵌套链接

浏览超过10k页获取数据,解析:欧洲搜索服务:从欧盟站点收集机会的微小刮刀&

read_csv分隔符正在创建无关的空列