在Chrome中使用Pepper / PPAPI Flash(通过Selenium)时,如何绕过"Flash Camera and Microphone Access"弹出窗口?



Chrome支持Flash的两种口味:NPAPI和PPAPI(胡椒)。这两个实现似乎以不同的方式处理相机和麦克风权限。具体来说,PPAPI(Pepper)似乎没有尊重任何以前的许可赠款。

使用NPAPI(默认值),我第一次导航到Flash站点,该站点请求使用计算机的相机和麦克风,Adobe Flash弹出窗口要求用户允许或拒绝访问。我允许访问,并记住这笔赠款。下次我导航到该站点时,请自动授予许可,而无需弹出。

当我想使用PPAPI(Pepper)Flash测试时,我指定了" - 可捆绑的-ppapi-flash"one_answers" - disable-npapi"命令行参数,向Chrome。在此模式下,以前的赠款将被忽略,并且每次都会显示弹出窗口。我没有弄清楚如何在硒中检测到这一点,然后单击"允许"。

有人知道如何通过单击"允许"或完全禁用它来绕过此弹出窗口?

谢谢。

更新:我已经在名为" settings.sol"的文件中发现了非pepper flash摄像机/麦克风权限,该文件存储在网站特定的目录中,请求访问。例如,在Windows上,当主机处于1.2.3.4请求访问时,创建以下文件:

c: users [user] appdata roaming macromedia flash player macromedia.com support support flashplayer sys#1.2.3.3.4 settings.soltings.sol

请注意" Flash Player"中的空间。该文件是一个本地共享对象,编码为AMF。我使用Python PYAMF软件包来创建一个文件,该文件可以永久访问网站:

from pyamf import sol
permissions = sol.SOL ('1.2.3.4/settings')
permissions[u'always'] = True
permissions[u'allow'] = True
permissions[u'klimit'] = 100
sol.save (permissions, 'my-settings.sol')

当我将其复制到适当的目录时,会自动授予访问权限。但这同样,这对胡椒闪光不起作用。

胡椒闪光灯忽略此目录,而是为Chrome的每个实例获得一个新的临时目录:

c: users [user] appdata local temp scoped_dir5976_6686 default default pepper data shockwave flash writablerot#sharedOberoot#cts 6dmdjwlp macromedia.com support flashplayer sys#1.2.3.4 settings.sol

不幸的是,目录会更改每个调用。如果我能以某种方式发现此目录的名称,那么我可以在请求访问之前上传文件。

,但我不知道如何发现此目录的名称。

事实证明我的问题是特定于硒的,以及我如何使用硒。

首先,返回NPAPI Flash,该Flash将其权限存储在Windows上,以用户目录下的子目录;例如:

C:Users[user]AppDataRoamingMacromediaFlash  Playermacromedia.comsupportflashplayersys

胡椒闪光灯没有将此目录用于其权限,因此不兑现存储在那里的设置。相反,它将其权限文件存储在Chrome用户数据目录下方的子目录中。

当我通过Selenium创建Chrome浏览器实例时,为会话创建了一个临时用户数据目录:

C:Users[user]AppDataLocalTempscoped_dir5976_6686

Pepper Flash正在此目录下方存储其权限文件,但是当浏览器会话结束时,此临时目录被删除并忘记了设置。

解决方案很简单:通过硒启动Chrome时,通过命令行参数指定Chrome用户的数据目录:

"user-data-dir=C:\Users\[user]AppDataLocalGoogleChromeUser Data"

胡椒闪光灯将其权限存储在此目录中,并且由于它是一个永久目录,在浏览器会话结束时不会被删除,因此下一个实例将在那里,因此将记住授予的权限。

在Linux上,目录似乎取决于应用程序。铬浏览器似乎将它们存储在

~/.config/chromium/Default/Pepper Data

QT WebEngine程序似乎将它们存储在

~/.local/share/[NAMEOFTHEAPPLICATION]/QtWebEngine/Default/Pepper Data

我需要删除目录以撤回永久访问网络摄像头的永久许可(我已将其授予网站进行测试)。

最新更新