- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Chrome 支持两种类型的 Flash:NPAPI 和 PPAPI (Pepper)。这两种实现似乎以不同的方式处理摄像头和麦克风权限。具体来说,PPAPI (Pepper) 似乎并不尊重之前授予的任何许可。
使用默认的 NPAPI,当我第一次导航到请求使用计算机摄像头和麦克风的权限的 Flash 站点时,Adobe Flash 弹出窗口会询问用户允许或拒绝访问。我允许访问,并且该授予会被记住。下次我导航到该网站时,会自动授予权限,而不会弹出窗口。
当我想使用 PPAPI (Pepper) Flash 进行测试时,我向 Chrome 指定“--enable-bundled-ppapi-flash”和“--disable-npapi”命令行参数。在此模式下,之前的授权将被忽略,并且每次都会显示弹出窗口。我还没有弄清楚如何在 Selenium 中检测到这一点并单击“允许”。
有谁知道如何绕过此弹出窗口,通过单击“允许”或完全禁用它吗?
谢谢。
更新:我发现非 Pepper Flash 将摄像头/麦克风权限存储在名为“settings.sol”的文件中,该文件存储在请求访问的站点特定的目录中。例如,在 Windows 上,当 1.2.3.4 的主机请求访问时,会创建以下文件:
C:\Users[用户]\AppData\Roaming\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys#1.2.3.4\settings.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')
当我将其复制到适当的目录时,会自动授予访问权限。但同样,这对 Pepper Flash 不起作用。
Pepper Flash 会忽略此目录,而是为每个 Chrome 实例获取一个新的临时目录:
C:\Users[用户]\AppData\Local\Temp\scoped_dir5976_6686\Default\Pepper Data\Shockwave Flash\WritableRoot#SharedObjects\6DMDJWLP\macromedia.com\support\flashplayer\sys#1.2.3.4\settings.sol
不幸的是,每次调用时目录都会发生变化。如果我能以某种方式发现该目录的名称,那么我就可以在请求访问之前上传该文件。
但我不知道如何发现这个目录的名称。
最佳答案
事实证明,我的问题是特定于 Selenium 以及我如何使用 Selenium 的。
首先回到NPAPI Flash,它将其在Windows上的权限存储在用户目录下的子目录中;例如:
C:\Users[user]\AppData\Roaming\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys
Pepper Flash 不使用此目录的权限,因此不遵守存储在那里的设置。相反,它将其权限文件存储在 Chrome 用户数据目录下的子目录中。
当我通过 Selenium 创建 Chrome 浏览器实例时,会为 session 创建一个临时用户数据目录,例如:
C:\Users[user]\AppData\Local\Temp\scoped_dir5976_6686
Pepper Flash 在此目录下存储其权限文件,但当浏览器 session 结束时,该临时目录被删除,并且设置被忘记。
解决方案很简单:通过 Selenium 启动 Chrome 时,通过命令行参数指定 Chrome 用户的数据目录:
"user-data-dir=C:\\Users\\[user]\AppData\Local\Google\Chrome\User Data"
Pepper Flash 会将其权限存储在该目录中,并且由于它是一个永久目录,在浏览器 session 结束时不会被删除,因此下一次实例时该目录仍会存在,因此会记住授予的权限。
关于google-chrome - 在 Chrome 中使用 Pepper/PPAPI Flash(通过 Selenium)时如何绕过 "Flash Camera and Microphone Access"弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174170/
当 Pepper 与我不在同一网络时,是否可以通过 Choregraphe/Python 脚本连接到 Pepper 机器人? 最佳答案 是的,但是很麻烦。只需为您的机器人获取专用的 WiFi 热点即可
我使用 android studio 为 pepper 开发了一个应用程序。该应用程序在模拟器上运行良好,但无法在真正的胡椒机器人上运行。我已经通过 IP 连接了真正的胡椒机器人,但是当我运行 and
当前在 pepper 中运行的项目支持德语和英语。当我尝试使用 Choregraphe 运行一个仅支持英语的新项目时。它不起作用,并给我以下错误消息。 我通过访问机器人IP的网页将机器人语言更改为英语
所以我按照 Pepper 机器人门户网站的指南进行操作。我必须补充 Domain: com.aldebaran.system.tablet Key: MainActivity Value: image
从QiSDK文档可以理解,async()的Future调用具有结果状态。 e.x. var goto = GoToBuilder.. var operation = goto.async().run(
我正在创建这个应用程序,其中 Pepper 在其平板电脑上显示一些可点击的图片。通过点击图片,用户会让 Pepper 做一些手势。这是我创建的 Choregraphe 文件: 这是我正在使用的相应的
我想在 Pepper 的平板电脑中显示他的相机拍摄的图像。我已经完成了 Javascript 代码以在 WebView 中处理和显示图像。问题是显示的图像很奇怪: 我已经根据这个 example 编写
我们最近购买了基于 Android 的 Pepper,我正在慢慢发现它的功能(和限制)。 我想知道是否可以同时运行两个动画 - 一个动画轨迹和另一个动画时间轴(例如让 Pepper 向前移动一米并同时
我一直在玩弄: PeoplePerception/PeopleDetected() PeoplePerception/PopulationUpdated() PeoplePerception/Peop
我想创建一个文件,其中包含 Pepper 机器人在有限时间内听到的内容。总而言之,我如何创建一个包含胡椒监听的 .wav 文件?实际上,我使用了 ALAudioRecorder NaoQi 库,但我遇
如何共享 Pepper 平板电脑的屏幕?我希望将平板电脑上显示的内容显示在投影仪上,以便吸引更多观众。有什么方法可以使用 Java 或 Python SDK 访问它吗? 最佳答案 是的,我经常这样做。
如果power batch被抬起,这意味着 Pepper 可能正在充电,并且房间周围的运动和围绕他自己的旋转被禁用。有没有办法禁止这些运动和旋转,而这power batch关闭了吗? 最佳答案 在您的
我尝试使用我的 Windows 7 笔记本电脑连接到 Pepper 机器人。它已连接,我可以使用 Android Studio 查看 Robot Viewer,但当我想部署 Pepper 机器人时它显
我希望我的应用程序在 pepper 启动时启动,并且当其他应用程序打开然后关闭(如设置)时它应该返回到我的应用程序。 我尝试在首选项中这样做,但似乎遗漏了一些东西。 有没有人有一些例子? 最佳答案 您
我正在尝试创建一个程序,其中一部分将使用 naoqi Python SDK 从我的 PC 的网络摄像头以帧(或换句话说图像)的形式将实时视频传输到 Pepper 的平板电脑。在机器人方面,将有一个程序
我在从 Pepper 机器人日志中读取 date 值时遇到问题。我使用 Python 从远程机器人获取日志消息。查看示例代码: def onMessage(mess): print mess
我如何在 Pepper 上安装东西,因为我不知道它使用什么包管理器。我通常在我的 Ubuntu 机器上使用 apt 并想在 Pepper 上安装一些包。我不确定 Pepper 有什么包管理器(如果有的
我遇到了一个讨论,在讨论中我了解到我所做的实际上并不是对密码进行加盐处理,而是对它们进行加盐处理,从那时起我就开始使用以下功能进行这两项操作: hash_function($salt.hash_fun
我正在设置 Pepper-Box 纯文本配置以使用 ${accountNumber}、${{accountNumber}}、{{accountNumber}} 传递变量,并使用函数返回字符串,但没有成
我正在为 Aldebaran 的 Pepper 机器人编写应用程序。我正在使用 Choregraphe,我制作了一个网络应用程序来显示在机器人平板电脑上。我正在尝试将一个变量从 Pepper 的行为传
我是一名优秀的程序员,十分优秀!