首页 > 编程语言 >python+playwright 学习-59 设置默认允许麦克风和摄像头等权限

python+playwright 学习-59 设置默认允许麦克风和摄像头等权限

时间:2023-04-27 18:44:39浏览次数:42  
标签:playwright 59 grant python sync context 权限 permissions

前言

有些场景在使用的时候,会弹出一些权限框,比如麦克风和摄像头等,通过监听alert 是没法捕获的。
正确做法是给浏览器设置默认允许麦克风和摄像头等权限,不让弹窗出来。使用context 的 grant_permissions 方法加权限。

权限框

弹窗示例

这种弹窗是权限窗,不是alert

解决办法

context 有个 grant_permissions 方法可以加权限,常见的权限如下

    def grant_permissions(
        self, permissions: typing.List[str], *, origin: typing.Optional[str] = None
    ) -> None:
        """BrowserContext.grant_permissions

        Grants specified permissions to the browser context. Only grants corresponding permissions to the given origin if
        specified.

        Parameters
        ----------
        permissions : List[str]
            A permission or an array of permissions to grant. Permissions can be one of the following values:
            - `'geolocation'`
            - `'midi'`
            - `'midi-sysex'` (system-exclusive midi)
            - `'notifications'`
            - `'camera'`
            - `'microphone'`
            - `'background-sync'`
            - `'ambient-light-sensor'`
            - `'accelerometer'`
            - `'gyroscope'`
            - `'magnetometer'`
            - `'accessibility-events'`
            - `'clipboard-read'`
            - `'clipboard-write'`
            - `'payment-handler'`
        origin : Union[str, None]
            The [origin] to grant permissions to, e.g. "https://example.com".
        """

添加'camera', 'microphone' 权限示例

from playwright.sync_api import sync_playwright

with sync_playwright() as playwright:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    # 设置允许 'camera', 'microphone' 权限
    context.grant_permissions(['camera', 'microphone'])
    page = context.new_page()
    page.goto('https://www.demo.com/demo.html')


2023最新《Playwright+Python自动化测试》点我 ->立即参与
联系微信:283340479

标签:playwright,59,grant,python,sync,context,权限,permissions
From: https://www.cnblogs.com/yoyoketang/p/17359944.html

相关文章

  • python 连接数据库
    使用pymysql连接数据库importpymysqlconn=pymysql.connect(host="10.00.0.00",port=31379,user="root",password="123456",database="acc_test")#模拟从数据库获取单个字段值withconn.cursor()ascursor:#获取【......
  • Python-集合的基本操作(set)
    1. 前言python中的集合和数学里的类似也是用于存放不重复的元素,它有可变集合(set)和不可变集合(feozenset)两种,集合的所有元素都放在一对大括号"{}"里(列表是[]、元组是()、字典是{}),集合最好的应用就是去重,因为集合中的每一个元素都是唯一的。 2. 集合的创建2.1.直接使用"{}"创......
  • python-docx设置docx文档表格样式
    使用python-docx,设置docx文档第4行表格第3行第2列单元格的字体对齐方式、加粗fromdocximportDocumentfromdocx.enum.textimportWD_ALIGN_PARAGRAPH#加载Word文档doc=Document('example.docx')#获取表格并定位到指定单元格table=doc.tables[3]cell=table.ce......
  • Linux-Centos 用crontab定时运行python脚本详细步骤
    服务器总是要定时运行某个程序,而我在解决这个问题的时候遇到很多困难,特此记录下来。1.编辑crontab配置crontab-e服务器一般会安装好crontab,若没有安装请按命令安装yuminstallcrontabs2.编写配置文件当打开配置文件的时候,我们可以看到类似的配置代码。每一行都代表一个......
  • Python-字典的基本操作
    1.字典的创建1.1、直接赋值创建字典语法格式:变量名={键1:值1,键2:值2,...}info={'第一个':0,"第二个":1,"第三个":2}print(info)1.2、使用内置函数dict()创建字典内置函数dict()可通过其他字典、“(键,值)”对的序列或关键字参数来创建字典。#创建空的字典info2=dict()#使......
  • Python MatplotlibDeprecationWarning Matplotlib 3.6 and will be removed two minor
    在Pycharm中使用Matplotlib中的pyplot时,运行代码报错:MatplotlibDeprecationWarning:SupportforFigureCanvaseswithoutarequired_interactive_frameworkattributewasdeprecatedinMatplotlib3.6andwillberemovedtwominorreleaseslater.解决方法File->Set......
  • Python中的运算符与优先级
    算术运算符这里仅列出与c++语法不一致的内容。指数a**b取模a%%b整除a//b比较运算符与c++语法完全相同,用于判断两个变量、常量或者表达式之间的大小,比较运算的结果是布尔类型。逻辑运算符与c++语法完全相同,对布尔型的常量、变量或表达式进行运算,逻辑运算的......
  • Playwright录制及断点
    Playwright录制录制命令playwrightcodegen该命令会自动打开浏览器,然后我们在浏览器中操作就会生成相应的代码 可以切换右上角的语言生成对应语言的代码,如下生成pytest用例,非常方便元素自动定位 也可以帮助我们定位,把鼠标放在想定位的位置就会出现定位的方式,也可以点......
  • Python的OS模块分析文件路径层次信息——获取文件路径、全名(文件名+尾缀)
    Code:importosFilePath="/a/bb/ccc/dddd.png"FolderPath,FullFileName=os.path.split(FilePath)Name,Suffix=os.path.splitext(FullFileName)print("文件路径:{}\n文件全名:{}\n文件名:{}\n文件后缀:{}".format(FolderPath,FullFileName,Name,......
  • Python数据类型
    Python语言中有6个标准数据类型。不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。有序数据:元组,列表无序数据:集合,字典数字number整型int正或负整数,不带小数点。可以使用十六进制数值来表示整数,十六进制整数的......